我研究了一個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