在MVC 5中翻译路由URL名称

时间:2014-11-26 23:46:28

标签: c# asp.net-mvc url-routing

我想访问我的网站

http://example.com/en/categoryhttp://example.com/pt/categoria同一行动。

1 个答案:

答案 0 :(得分:0)

您可以使用某种“语言”注册路径作为路径的第一部分,并处理诸如行动参数之类的信息。

 routes.MapRoute(
            name: "Category",
            url: "{language}/Category",
            defaults: new { controller = "Category", action = "Index" },
            );

 ActionResult Index(string language,...)
 {
    // set language based on Url 
    // i.e. if you are using "en-GB" as language (.Net culture names) 
    Thread.CurrentThread.CurrentCulture = new CultureInfo(language);
    Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);
 }

请注意,有许多方法可以重构此类代码以避免重复(即编写ActionFilter来执行此操作)。