我正在尝试通过路线实现本地化

我有以下几点:

routes.MapRoute( "DefaultLocalized",
                 "{lang}/{controller}/{action}/{id}",
                 new { controller = "Home",
                       action = "Index",
                       id = "",
                       lang = "en" }
               );

routes.MapRoute( "Default",
                 "{controller}/{action}/{id}",
                 new { controller = "Home",
                       action = "Index",
                       id = "" }
               );

当我调用页面domain/en/home/index时,它可以正常工作,但是当我调用domain/home/index时,出现错误404:找不到资源。

另外,当我进入domain/en/home/index并单击安全页面时,我将重定向到domain/Account/login,如何将我重定向到domain/en/Account/login

另外,当我收到应用程序错误时,如何重定向到domain/en/home/error

真正的问题是如何使用语言作为路由参数来实现本地化?

最佳答案

您还可以引入比Marc Gravell和Freddy Rios更严格的约束。

类似于“en | de | fr | es”。这将意味着对语言进行硬编码,但是通常这些语言很少而且众所周知。

关于c# - asp.net mvc本地化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/660872/

10-12 22:13