我有这些路线
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new {area="", controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] { "WebControllers.Controllers" });
routes.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new {Area="Admin", Controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] { "WebControllers.Areas.Admin.Controllers" });
我在管理区域有用户控制器。当我尝试联系/ admin / users时,它没问题。 但即使我没有普通区域的用户控制器(""),/用户路由到/ admin / users控制器,但它无法找到视图并给出错误。
如何防止/用户路径路由到/ admin / users?
答案 0 :(得分:0)
我不确定我是否完全理解这个问题,但我相信解决方案是更改MapRoute调用的顺序。您应该按照具体的具体顺序添加路线。
例如,如果按此顺序添加路线
{controller}/{action}/{id}
Admin/{controller}/{action}/{id}
任何匹配controller / action / id的url都将匹配并路由。第二条路线永远不会被使用。
但是,如果你交换订单,mvc将首先匹配Admin / controller / action / id。基本上,路由将在第一个工作之后停止检查匹配。