我研究了一个MVC示例我有一个控制器Home和一个动作索引。MVC路由:路由优先级不按预期工作
我有以下路由登记:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute("MyRoute", "{controller}/{action}");
routes.MapRoute("MyOtherRoute", "App/{action}",
new { controller = "Home" });
}
我的理解,如果请求的路径不匹配(或MATCH给出了一个空的结果?!),该框架将继续在剩下的搜索的路线...
例如,如果我将导航到/App/Index
,我希望我将被重定向到Home
控制器的Index
方法。
就是这样,但只有在“MyRoute”被定义为之后“MyOtherRoute”或“MyRoute”根本没有。但如前所述,我得到了HTTP 404
。
这是为什么?
它从顶部相匹配,但第一场比赛给出了一个空的结果(应用程序控制器不存在),因此它应该继续搜索?! – Serge
不,MVC不会继续搜索,它会像显示HTTP 404一样。只是改变顺序,它应该工作。 – Raidri
正如我在问题中提到的那样,更改订单的工作原理,所以这不是问题。对我而言,如果一旦没有比赛结果,系统会继续搜索匹配,这样会更好。 – Serge