Asp.net mvc 仅ID为的.Net MVC路由

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

我正在尝试配置我的路由,以便我可以将博客条目(带有字符串id)作为url中的唯一段

比如说,

/ABlogTitle->Controller=“Blog”,Action=“Entry”,Id=“ABlogTitle”

我的假设是,如果某个路由由于操作不存在而失败,它将使用下一个路由重试,但这似乎不起作用

这是我的路线

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