Freigeben über


IRouteValueProvider Schnittstelle

Definition

Eine Metadatenschnittstelle, die einen Routenwert angibt, der erforderlich ist, damit die Aktionsauswahl eine Aktion auswählen kann. Wenn er auf eine Aktion mithilfe des Attributroutings angewendet wird, wird der Routenwert hinzugefügt Values , wenn die Aktion ausgewählt ist.

Wenn ein IRouteValueProvider verwendet wird, um einen neuen Routenwert für eine Aktion bereitzustellen, müssen alle Aktionen in der Anwendung auch über einen Diesem Schlüssel zugeordneten Wert oder über einen impliziten Wert von nullverfügen. Weitere Informationen finden Sie in den Hinweisen.

public interface class IRouteValueProvider
public interface IRouteValueProvider
type IRouteValueProvider = interface
Public Interface IRouteValueProvider
Abgeleitet

Hinweise

Das typische Schema für die Aktionsauswahl in einer MVC-Anwendung ist, dass eine Aktion die übereinstimmenden Werte für ihre ControllerName und benötigt. ActionName

Für eine Aktion wie MyApp.Controllers.HomeController.Index()muss , um ausgewählt zu werden, die Values Werte { "action": "Index", "controller": "Home" } enthalten.

Wenn Bereiche in der Anwendung verwendet werden (siehe AreaAttribute , die implementiert IRouteValueProvider), werden alle Aktionen entweder in einem Bereich berücksichtigt, indem sie einen Nicht-Bereich-Wertnull (angegeben durch AreaAttribute oder einen anderen IRouteValueProvider) haben, oder werden als "außerhalb" von Bereichen betrachtet, indem sie den -Wert nullhaben.

Stellen Sie sich eine Anwendung mit zwei Controllern mit jeweils einer Index Aktionsmethode vor: - MyApp.Controllers.HomeController.Index()MyApp.Areas.Blog.Controllers.HomeController.Index() - wobei MyApp.Areas.Blog.Controllers.HomeController ein Bereichsattribut [Area("Blog")]aufweist.

For Values like: { "action": "Index", "controller": "Home" }

MyApp.Controllers.HomeController.Index() wird ausgewählt. MyApp.Area.Blog.Controllers.HomeController.Index() gilt nicht als berechtigt, da der Values nicht den Wert "Blog" für "Area" enthält.

Für Values like: { "area": "Blog", "action": "Index", "controller": "Home" }

MyApp.Area.Blog.Controllers.HomeController.Index() wird ausgewählt. MyApp.Controllers.HomeController.Index() gilt nicht als berechtigt, da die Routenwerte einen Wert für "Area" enthalten. MyApp.Controllers.HomeController.Index() kann nicht mit einem anderen Wert für "area" als nullübereinstimmen.

Eigenschaften

RouteKey

Der Routenwertschlüssel.

RouteValue

Der Routenwert. Wenn null oder leer, muss der Routenwert, der zugeordnet RouteKey ist, oder fehlen null.

Gilt für: