共用方式為


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 因為 不包含 'area' 的值 'Blog'。

例如 Values : { 「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

適用於