在 MVC 5 中翻译路由 URL 名称

本文关键字:路由 URL 名称 翻译 MVC | 更新日期: 2023-09-27 18:32:05

我想像访问我的网站一样

http://example.com/en/category 或 http://example.com/pt/categoria 相同的操作。

在 MVC 5 中翻译路由 URL 名称

您可以使用某种"语言"注册路由作为路径的第一部分,并将此类信息作为操作的参数进行处理。

 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 来执行此操作)。