Поделиться через


IRouteValueProvider Интерфейс

Определение

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

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

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

Комментарии

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

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

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

Рассмотрим приложение с двумя контроллерами, каждый из которых имеет 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 так как не содержит значение "Blog" для "area".

Для Values like: { "area": "Blog", "action": "Index", "controller": "Home" }

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

Свойства

RouteKey

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

RouteValue

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

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