英語で読む

次の方法で共有


IRouteValueProvider インターフェイス

定義

アクション セレクターがアクションを選択するために必要なルート値を指定するメタデータ インターフェイス。 属性ルーティングを使用してアクションに適用すると、アクションが選択されたときにルート値が に Values 追加されます。

IRouteValueProviderを使用してアクションに新しいルート値を指定する場合、アプリケーション内のすべてのアクションには、そのキーに関連付けられた値も必要です。または、暗黙的な値が であるnull必要があります。 詳細については、「解説」を参照してください。

public interface IRouteValueProvider
派生

注釈

MVC アプリケーションでのアクションの選択の一般的なスキームは、アクションに と の一致する値 ControllerName が必要です ActionName

のような MyApp.Controllers.HomeController.Index()アクションを選択するには、 Values に値 { "action": "Index"、"controller": "Home" } が含まれている必要があります。

エリアがアプリケーションで使用されている場合 (実装を参照してくださいAreaAttribute)、すべてのアクションは、エリアnull以外の値 (または 別IRouteValueProviderの で指定) を持つことによってエリア内で考慮されるか、 値nullを持つことによってAreaAttributeエリアの "外側" と見なIRouteValueProviderされます。

アクション メソッドを持つ 2 つのコントローラーを持つアプリケーションについてIndex考えてみましょう。 にはMyApp.Areas.Blog.Controllers.HomeController.Index()MyApp.Areas.Blog.Controllers.HomeControllerMyApp.Controllers.HomeController.Index() - area 属性 [Area("Blog")]があります。

like Values : { "action": "Index", "controller": "Home" }

MyApp.Controllers.HomeController.Index() が選択されます。 MyApp.Area.Blog.Controllers.HomeController.Index() には 'area' の値 'Blog' が含まれていないため Values 、対象とは見なされません。

like 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必要です。

適用対象