我是 ASP.NET MVC 的新手,遇到了无法解决的问题。我花了两天时间搜索谷歌,但仍然没有。
所以,我的情况是:我正在尝试使用路由在我的 ASP.NET MVC 应用程序中实现本地化。
www.mysite.com/Home/Index
- 默认(俄语)
www.mysite.com/en/Home/Index
- 英语
所以我正在注册路线:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Default",
"{controller}/{action}",
new { controller = "Home", action = "Index"},
new { controller = "^[a-zA-z]{4,}$" }
);
routes.MapRoute(
"Localization",
"{lang}/{controller}/{action}",
new { lang = "en", controller = "Home", action = "Index" }
);
}
导航到默认值:www.mysite.com/Home/Index
工作正常。但是当我尝试导航到时,www.mysite.com/en/Home/Index
我得到404 error
.
更有趣的是,RouteDebugger
没有看到我的新路线:
添加更多新路线、更改它们的映射顺序甚至删除我所有的路线都无济于事。似乎该路由{controller}/{action}/{id}
只是“在我之前”添加的 MVC 的默认路由。
那么,可能是什么问题?我完全不知道!我从其他站点看到了 Rote Debugger 的屏幕截图,并显示了它们的路线。例如其他一些网站:截图
也许我必须改变一些东西web.config
?我完全糊涂了。请帮忙!非常感谢您的宝贵时间!