2008-11-24 30 views
1

我正面臨一個問題。 我想在我的項目中本地化我的動作名稱,這樣法國人就可以擁有帶有法語名稱的乾淨網址。控制器的動作名稱本地化

http://www.test.com/Home應該http://www.test.com/Accueil

這是谷歌索引過一件好事。 此外,我想對應用程序感到寧靜,所以我也想保留英文名稱,因爲開發人員(甚至是法國人)更喜歡使用英文名稱。

我不知道它是否可能以及如何。

我的第一個想法應該是像獲取瀏覽器語言,將其分配給CurrentThread.CurrentCulture,所以我可以選擇我想要的視圖名稱。

非常感謝您的回答。

回答

4

您可以在global.asax中註冊路由時執行此操作。

如果平時你有這樣的:

routes.MapRoute("Catalog-Brands", "catalog/brand/", new {controller = "Brand", action = "Index", isActive = true}); 

你可以做這一個了(我不知道法國人,對不起)

routes.MapRoute("Catalog-Brands-French", "french-catalog/french-brand/", new {controller = "Brand", action = "Index", isActive = true}); 

,你既可以讓他們所有可用的全局或有單獨:

public static void RegisterUsRoutes 

public static void RegisterFrenchRoutes 

儘管您可能會或可能會在應用程序啓動時做出決定。OT能夠在運行時註冊路由)

2

如果你可以使用的ISAPI,也就是說,如果你控制IIS,最好的辦法是使用ISAPI我建議你離子學的ISAPI: http://www.codeplex.com/IIRF

它實現了或多或少的Apache重寫mod(重定向)。

相關問題