Asp.net mvc 4 MVC路由不工作

Asp.net mvc 4 MVC路由不工作,asp.net-mvc-4,routes,Asp.net Mvc 4,Routes,在我的route config类中,我创建了一个带有static前缀的自定义路由配置 public static void RegisterRoutes(RouteCollection routes) { routes.MapRoute("MyRoute", "{controller}/{action}", new { controller = "Home", action = "Index" }); routes.MapRoute("", "Public/{controlle

在我的route config类中,我创建了一个带有
static
前缀的自定义路由配置

public static void RegisterRoutes(RouteCollection routes) { 
  routes.MapRoute("MyRoute", "{controller}/{action}", 
  new { controller = "Home", action = "Index" }); 
  routes.MapRoute("", "Public/{controller}/{action}", 
  new { controller = "Home", action = "Index" }); 
}

但是URL
…mysite/Public
给出了一个
页面未找到
错误。这里怎么了?

更改两条路线的顺序

 public static void RegisterRoutes(RouteCollection routes) { 

routes.MapRoute("", "Public/{controller}/{action}", 
new { controller = "Home", action = "Index" }); 

routes.MapRoute("MyRoute", "{controller}/{action}", 
new { controller = "Home", action = "Index" }); 

}
MVC路由按照给定的顺序通过匹配模式。
它试图生成一个未找到的URL作为
Public/index

MVC路由系统尝试将传入URL与首先定义的路由的URL模式相匹配,并且仅在不匹配时才转到下一个路由。将按顺序尝试路由,直到找到匹配项或路由集已用尽。其结果是,我们必须首先确定最具体的路线