IRouteValueProvider Интерфейс

Определение

Интерфейс метаданных, указывающий значение маршрута, необходимое для выбора действия селектором действий. При применении к действию с помощью маршрутизации атрибутов значение маршрута будет добавлено к выбранному Values действию.

IRouteValueProvider Если используется для предоставления нового значения маршрута для действия, все действия в приложении также должны иметь значение, связанное с этим ключом, или иметь неявное значение null. Дополнительные сведения см. в примечаниях.

public interface class IRouteValueProvider
public interface IRouteValueProvider
type IRouteValueProvider = interface
Public Interface IRouteValueProvider
Производный

Комментарии

Типичная схема выбора действий в приложении MVC заключается в том, что для действия потребуются соответствующие значения и ControllerNameActionName

Для действия, например MyApp.Controllers.HomeController.Index(), для выбора, Values должен содержать значения { "action": "Index", "controller": "Home" }

Если области используются в приложении (см. реализациюIRouteValueProvider), то все действия учитываются либо в области, имея значение, отличноеnull от области (указанное AreaAttribute или другоеIRouteValueProvider), либо считаются "за пределами" областей, имея значениеnull.AreaAttribute

Рассмотрим приложение с двумя контроллерами, каждый из которых имеет Index метод действия: где MyApp.Controllers.HomeController.Index()MyApp.Areas.Blog.Controllers.HomeController.Index() - MyApp.Areas.Blog.Controllers.HomeController имеется атрибут [Area("Blog")]области.

Например Values : { "action": "Index", "controller": "Home" }

MyApp.Controllers.HomeController.Index() будет выбран. MyApp.Area.Blog.Controllers.HomeController.Index() не считается допустимым, так как Values не содержит значение "Блог" для "области".

Например Values : { "area": "Blog", "action": "Index", "controller": "Home" }

MyApp.Area.Blog.Controllers.HomeController.Index() будет выбран. MyApp.Controllers.HomeController.Index() не считается допустимым, так как значения маршрута содержат значение для "area". MyApp.Controllers.HomeController.Index() не может соответствовать ни одному значению для "области", отличной от null.

Свойства

RouteKey

Ключ значения маршрута.

RouteValue

Значение маршрута. Если null или пуст, требуется, чтобы значение маршрута, связанное с RouteKey отсутствующим, или null.

Применяется к