Compartir a través de


IRouteValueProvider Interfaz

Definición

Interfaz de metadatos que especifica un valor de ruta que es necesario para que el selector de acciones elija una acción. Cuando se aplica a una acción mediante el enrutamiento de atributos, el valor de ruta se agregará a cuando Values se seleccione la acción.

Cuando se usa para IRouteValueProvider proporcionar un nuevo valor de ruta a una acción, todas las acciones de la aplicación también deben tener un valor asociado a esa clave o tener un valor implícito de null. Consulte los comentarios para obtener más detalles.

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

Comentarios

El esquema típico para la selección de acciones en una aplicación MVC es que una acción requerirá los valores coincidentes para su ControllerName y ActionName

Para una acción como MyApp.Controllers.HomeController.Index(), para seleccionarla, Values debe contener los valores { "action": "Index", "controller": "Home" }

Si las áreas están en uso en la aplicación (vea AreaAttribute qué implementa IRouteValueProvider), todas las acciones se tienen en cuenta en un área teniendo un valor que nonull es de área (especificado por AreaAttribute u otro IRouteValueProvider) o se consideran "fuera" de las áreas al tener el valor null.

Considere una aplicación con dos controladores, cada uno con un Index método de acción: , MyApp.Controllers.HomeController.Index()MyApp.Areas.Blog.Controllers.HomeController.Index() - donde MyApp.Areas.Blog.Controllers.HomeController tiene un atributo [Area("Blog")]de área .

Por Values ejemplo: { "action": "Index", "controller": "Home" }

MyApp.Controllers.HomeController.Index() se seleccionará. MyApp.Area.Blog.Controllers.HomeController.Index() no se considera apto porque Values no contiene el valor "Blog" para "area".

Por Values ejemplo: { "area": "Blog", "action": "Index", "controller": "Home" }

MyApp.Area.Blog.Controllers.HomeController.Index() se seleccionará. MyApp.Controllers.HomeController.Index() no se considera apto porque los valores de ruta contienen un valor para "area". MyApp.Controllers.HomeController.Index() no puede coincidir con ningún valor de 'area' distinto nullde .

Propiedades

RouteKey

Clave de valor de ruta.

RouteValue

Valor de ruta. Si null o está vacío, requiere que falte el valor de ruta asociado RouteKey a o null.

Se aplica a