Asp.net mvc 仅ID为的.Net MVC路由
我正在尝试配置我的路由,以便我可以将博客条目(带有字符串id)作为url中的唯一段 比如说, /ABlogTitle->Controller=“Blog”,Action=“Entry”,Id=“ABlogTitle” 我的假设是,如果某个路由由于操作不存在而失败,它将使用下一个路由重试,但这似乎不起作用 这是我的路线Asp.net mvc 仅ID为的.Net MVC路由,asp.net-mvc,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc Routing,我正在尝试配置我的路由,以便我可以将博客条目(带有字符串id)作为url中的唯一段 比如说, /ABlogTitle->Controller=“Blog”,Action=“Entry”,Id=“ABlogTitle” 我的假设是,如果某个路由由于操作不存在而失败,它将使用下一个路由重试,但这似乎不起作用 这是我的路线 routes.MapRoute( name: "Entries", url: "{id}", defaults: new {controller = "Bl
routes.MapRoute(
name: "Entries",
url: "{id}",
defaults: new {controller = "Blog", action = "Entry"}
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Blog", action = "Index", id = UrlParameter.Optional }
);
不,你的假设是错误的。当请求与路由匹配时,MVC不会遍历集合中的其余路由
在这种情况下,请求
/ABlogTitle
与集合中的第一条路由匹配,不再进行路由探测,管道的其余部分(控制器选择、操作选择等)将发生。您需要使用RouteContraint之类的正则表达式来限制匹配,或者使用/entry/{id}之类的前缀
否则,是的,您为“条目”设置的路由将匹配每个URL
或者查看最新MVC和Web API版本中提供的新路由:
您遇到了什么错误?当导航到“/ABlogTitle”时,我得到了404