路由优先级与属性路由

时间:2013-10-23 21:29:34

标签: asp.net-mvc-5 attributerouting

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

[Route("", ActionPrecedence = 1)]
[Route("city/{citySlug}", ActionPrecedence = 2)]

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

1 个答案:

答案 0 :(得分:6)

您使用的是发布版本吗?

在已发布的MVC 5.0版本中,您可以为每个Name指定OrderRouteOrder在生成Url时很有用。

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

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

参考:Attribute Routing in ASP.NET MVC 5


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

在已发布的版本中,没有命名属性“Order”。

属性顺序是根据路线模板匹配的优先顺序计算的。