MVC5国际化的URL

时间:2015-02-13 15:47:28

标签: asp.net-mvc internationalization asp.net-mvc-5 asp.net-mvc-routing

如何对MVC应用程序中的URL进行本地化。

例如,根据语言

,我会有不同的URL
  • EN:... / user /...
  • DE:... / Benutzer /...

我不仅想要这个好网址,还要从这个网址生成我的面包屑,所以这会产生类似于:

  • EN:主页 - >用户 - > ..
  • DE:Überischt - > Benutzer - > ....

我查看了Routconfig,但没有找到任何国际化选项。我是否必须为每个国际化URL定义一个spezifice路由?

1 个答案:

答案 0 :(得分:1)

据我所知,除了为每个路由添加本地化变体之外,没有办法制作基于约定的本地化URL。相反,您必须构建一个custom RouteBase,根据当前文化将URL映射到路径组合。您也可以通过覆盖GetVirtualPath来制作反向路线,以便您的ActionLink来电根据文化构建正确的网址。

最好将文化添加到网址的开头,并使用Application_BeginRequest事件中的初始值设定项根据网址设置文化。

至于构建面包屑,您可以使用支持本地化的MvcSiteMapProvider

完全披露:我是MvcSiteMapProvider的主要撰稿人。