我遇到了问题。 我想在我的项目中本地化我的动作名称,这样法国人就可以拥有带有法语名称的干净网址。
http://www.test.com/Home应为http://www.test.com/Accueil
谷歌索引也是一件好事。 此外,我想对应用程序保持沉默,所以我也希望保留英文名称,因为开发人员(甚至是法国人)更喜欢使用英文名称。
我不知道是否可能以及如何。
我的第一个想法应该是获取浏览器语言,将其分配给CurrentThread.CurrentCulture,这样我就可以选择我想要的视图名称。
非常感谢您的回答。
答案 0 :(得分: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
您必须在应用程序启动时做出决定(您可能会或可能无法在运行时注册路由。)
答案 1 :(得分:2)
如果您可以使用ISAPI,也就是说,如果您控制IIS,最好的方法是使用ISAPI我建议您使用Ionics Isapi: http://www.codeplex.com/IIRF
它或多或少地实现了Apache中的Rewrite mod(重定向)。