路由优先级与属性路由

CMi*_*cea 8 attributerouting asp.net-mvc-5

在较旧的MVC版本中,使用AttributeRouting库,我可以有多个路由并指定优先级,因此在生成URL时选择最合适的路径:

[Route("", ActionPrecedence = 1)]
[Route("city/{citySlug}", ActionPrecedence = 2)]
Run Code Online (Sandbox Code Playgroud)

在MVC 5中,ActionPrecedence属性上没有属性.在这种情况下,如何指定路由优先级?

jd4*_*d4u 6

你在使用发行版吗?

在发布的版本MVC 5.0,您可以指定NameOrder每一个Route.这Order有助于Url生成.

Route(template, NamedParams:[Name,Order])

[Route("city/{id}",Name="CityFirst", Order=1)]
[Route("mycity/{id}", Name = "MyCityFirst", Order = 2)]
Run Code Online (Sandbox Code Playgroud)

请参阅:ASP.NET MVC 5中的属性路由


更新:我的错!以上答案是基于RC1假定为发布版本.

在已发布的版本中,没有命名属性"Order".

属性顺序是根据路径模板匹配的优先级计算的.

  • 同时有一个(用mvc 5.2.2检查) - > http://msdn.microsoft.com/en-us/library/system.web.mvc.routeattribute.order(v=vs.118).aspx (4认同)