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 |
Значение маршрута. Если |