1

我面临一个问题。我想在我的项目中本地化我的动作名称,以便法国人可以使用带有法语名称的干净网址。

http://www.test.com/Home应该是http://www.test.com/Accueil

这对于谷歌索引也是一件好事。此外,我想在应用程序上保持安静,所以我也想保留英文名称,因为开发人员(甚至是法国人)更喜欢使用英文名称。

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

我的第一个想法应该是获取浏览器语言,将其分配给 CurrentThread.CurrentCulture,这样我就可以选择我想要的视图名称。

非常感谢您的回答。

4

2 回答 2

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

不过,您必须在应用程序启动时做出决定(您可能会也可能无法在运行时注册路由。)

于 2008-11-24T22:32:15.130 回答
2

如果你可以使用ISAPIs,也就是说如果你控制IIS,最好是使用ISAPI我推荐你Ionics Isapi: http: //www.codeplex.com/IIRF

它或多或少地实现了 Apache 中的 Rewrite mod 所做的(重定向)。

于 2008-11-25T00:02:44.603 回答