假设我有一个ASP.Net MVC 4 Web应用程序。在这个应用程序中,我有2个控制器"产品"和"支持"。
此应用是一款支持语言的网络应用,因此当用户导航至http://server/product/index时,我想自动重定向到http://server/en-us/product/index
支持相同:从http://server/support/到http://server/en-us/support/
我已经有了一些逻辑来确定基于浏览器的用户语言,我只是不确定实现上述内容的最佳方式。
为了澄清,我已经是一个带语言的默认路线
private const string languagePartPattern = @"(\w{2})|(\w{2}-\w{2,4})";
routes.MapRoute(
name: "DefaultLang",
url: "{lang}/{controller}/{action}/{id}",
constraints: new { lang = languagePartPattern }, //For example: en or en-US
defaults: new { lang = SettingsHelper.DefaultLanguage, controller = "EntryPoint", action = "Index", id = UrlParameter.Optional }
);
如果我导航到http://server/product/,则不会自动重定向到http://server/en-us/product/。但是,如果我直接导航到http://server/en-us/product/
,它可以正常工作