Partager via


IRouteValueProvider Interface

Définition

Interface de métadonnées qui spécifie une valeur d’itinéraire requise pour que le sélecteur d’action choisisse une action. En cas d’application à une action à l’aide du routage d’attributs, la valeur de route est ajoutée au Values lorsque l’action est sélectionnée.

Lorsqu’un IRouteValueProvider est utilisé pour fournir une nouvelle valeur d’itinéraire à une action, toutes les actions de l’application doivent également avoir une valeur associée à cette clé, ou avoir une valeur implicite de null. Pour plus d’informations, consultez les remarques.

public interface class IRouteValueProvider
public interface IRouteValueProvider
type IRouteValueProvider = interface
Public Interface IRouteValueProvider
Dérivé

Remarques

Le schéma classique pour la sélection d’action dans une application MVC est qu’une action nécessite les valeurs correspondantes pour ses ControllerName et ActionName

Pour une action telle que MyApp.Controllers.HomeController.Index(), pour être sélectionnée, doit Values contenir les valeurs { « action »: « Index », « controller »: « Home » }

Si des zones sont en cours d’utilisation dans l’application (voir AreaAttribute qui implémente ), toutes les actions sont considérées IRouteValueProvidersoit dans une zone en ayant une valeur de non-zonenull (spécifiée par AreaAttribute ou une autre IRouteValueProvider) soit considérées comme « en dehors » des zones en ayant la valeur null.

Prenons l’exemple d’une application avec deux contrôleurs, chacun avec une méthode d’action Index : - MyApp.Controllers.HomeController.Index()MyApp.Areas.Blog.Controllers.HomeController.Index() - où MyApp.Areas.Blog.Controllers.HomeController a un attribut [Area("Blog")]de zone .

Comme Values : { « action »: « Index », « controller »: « Home » }

MyApp.Controllers.HomeController.Index() sera sélectionné. MyApp.Area.Blog.Controllers.HomeController.Index() n’est pas considéré comme éligible, car ne Values contient pas la valeur « Blog » pour « zone ».

Comme Values : { « area »: « Blog », « action »: « Index », « controller »: « Home » }

MyApp.Area.Blog.Controllers.HomeController.Index() sera sélectionné. MyApp.Controllers.HomeController.Index() n’est pas considéré comme éligible, car les valeurs d’itinéraire contiennent une valeur pour « area ». MyApp.Controllers.HomeController.Index() ne peut pas correspondre à une valeur pour 'area' autre que null.

Propriétés

RouteKey

Clé de valeur de route.

RouteValue

Valeur de route. Si null ou vide, nécessite que la valeur de route associée RouteKey à soit manquante ou null.

S’applique à