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) 则所有操作都考虑在一个区域中,方法是 (指定的AreaAttributenull区域值或另IRouteValueProvider一个) ,或者通过具有值 null将区域视为“超出”区域。

假设应用程序有两个控制器,每个控制器都有一个Index操作方法: - MyApp.Controllers.HomeController.Index()MyApp.Areas.Blog.Controllers.HomeController.Index() - 其中 MyApp.Areas.Blog.Controllers.HomeController 具有区域属性 。[Area("Blog")]

对于 Values like: { “action”: “Index”, “controller”: “Home” }

MyApp.Controllers.HomeController.Index() 将选中。 MyApp.Area.Blog.Controllers.HomeController.Index() 被视为不符合条件, Values 因为 不包含“区域”的值“Blog”。

对于 Values like: { “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

适用于