2013-10-23 9 views
8

In älteren MVC-Versionen, mit der AttributeRouting Bibliothek, kann ich mehrere Routen und einen Vorrang geben, so dass die am besten geeigneten gepflückt wird, wenn URLs zu erzeugen:Strecke Vorrang mit dem Attribute Routing

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

In MVC 5 ist nein ActionPrecedence Eigenschaft auf dem Attribut. Wie lege ich in diesem Fall den Vorrang der Route fest?

Antwort

6

Verwenden Sie die Release-Version? In der freigegebenen Version MVC 5.0 können Sie Name und Order für jede Route angeben. Die Order ist hilfreich bei der Generierung von URLs.

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

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

Siehe: Attribute Routing in ASP.NET MVC 5


UPDATE: Mein Fehler! Die obige Antwort basierte auf der RC1, die als freigegebene Version angenommen wurde.

In der freigegebenen Version gibt es kein benanntes Attribut "Bestellung".

Die Reihenfolge der Attribute wird basierend auf dem Vorrang der Übereinstimmung der Route-Vorlage berechnet.

+1

Es gibt keine 'Order' Eigenschaft auf' RouteAttribute', nur Name. – CMircea

+4

in der Zwischenzeit gibt es einen (Checked mit MVC 5.2.2) -> http://msdn.microsoft.com/en-us/library/system.web.mvc.routeattribute.order(v=vs.118). aspx –