Compartilhar via


IRouteValueProvider Interface

Definição

Uma interface de metadados que especifica um valor de rota que é necessário para o seletor de ação escolher uma ação. Quando aplicado a uma ação usando o roteamento de atributo, o valor da rota será adicionado ao Values quando a ação for selecionada.

Quando um IRouteValueProvider é usado para fornecer um novo valor de rota para uma ação, todas as ações no aplicativo também devem ter um valor associado a essa chave ou ter um valor implícito de null. Confira comentários para obter mais detalhes.

public interface class IRouteValueProvider
public interface IRouteValueProvider
type IRouteValueProvider = interface
Public Interface IRouteValueProvider
Derivado

Comentários

O esquema típico para seleção de ação em um aplicativo MVC é que uma ação exigirá os valores correspondentes para seu ControllerName e ActionName

Para uma ação como MyApp.Controllers.HomeController.Index(), para ser selecionada, o Values deve conter os valores { "action": "Index", "controller": "Home" }

Se as áreas estiverem em uso no aplicativo (veja AreaAttribute qual implementa ) todas as ações serão consideradas em uma área com um valor não-áreanull (especificado por AreaAttribute ou outro IRouteValueProvider) ou são consideradas IRouteValueProvider'fora' das áreas por terem o valor null.

Considere um aplicativo com dois controladores, cada um com um Index método de ação: - MyApp.Controllers.HomeController.Index()MyApp.Areas.Blog.Controllers.HomeController.Index() - em que MyApp.Areas.Blog.Controllers.HomeController tem um atributo [Area("Blog")]de área .

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

MyApp.Controllers.HomeController.Index() será selecionado. MyApp.Area.Blog.Controllers.HomeController.Index() não é considerado qualificado porque o Values não contém o valor 'Blog' para 'area'.

Para Values curtir: { "area": "Blog", "action": "Index", "controller": "Home" }

MyApp.Area.Blog.Controllers.HomeController.Index() será selecionado. MyApp.Controllers.HomeController.Index() não é considerado qualificado porque os valores de rota contêm um valor para 'area'. MyApp.Controllers.HomeController.Index() não pode corresponder a nenhum valor para 'area' diferente de null.

Propriedades

RouteKey

A chave de valor de rota.

RouteValue

O valor da rota. Se null ou vazio, requer que o valor da rota associado RouteKey a esteja ausente ou null.

Aplica-se a