我研究MVC样本我有一个控制器Home和一个动作索引。
我有以下路由注册:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute("MyRoute", "{controller}/{action}");
routes.MapRoute("MyOtherRoute", "App/{action}",
new { controller = "Home" });
}
根据我的理解,如果请求的路线不匹配(或者匹配产生空结果?!),框架将继续搜索其余的路线......
例如,如果我要导航到/App/Index
,我希望我会被重定向到Index
控制器的Home
方法。
就是这种情况,但只有在“MyRoute”中定义了 之后“MyOtherRoute”或“MyRoute”完全缺失。但如前所述,我得到了HTTP 404
。
为什么会这样?
答案 0 :(得分:2)
答案 1 :(得分:1)
MVC正在验证从顶部开始的路线,您的第一条路线对/App/Index
有效。不检查路由是否导致现有控制器/动作。
您必须添加路线,以便更具体的路线在开头,然后它将按您的需要工作。