我正在根据路由数据本地化我的 MVC3 站点。例如,http://domain/fr
应该以法语显示该站点,并且http://domain
应该默认为英语……以下是我在 Global.ascx 中注册我的路线的方式。
我的问题是这http://domain/fr/Home/Index
会起作用,但http://domain/Home/Index
会显示资源未找到错误,并且通过调查它告诉我路由表正在将“Home”映射到 {lang}
我错过了什么?
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("favicon.ico");
routes.MapRoute(
"LogOn", // Route name
"Account/{action}", // URL with parameters
new { controller = "Account", action = "LogOn" } // Parameter defaults
);
routes.MapRoute(
"Localization", // Route name
"{lang}/{controller}/{action}", // URL with parameters
new { UrlParameter.Optional, controller = "Home", action = "Index"} // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}", // URL with parameters
new { controller = "Home", action = "Index"} // Parameter defaults
);
}