Udostępnij za pośrednictwem


IRouteValueProvider Interfejs

Definicja

Interfejs metadanych określający wartość trasy, która jest wymagana do wybrania akcji przez selektor akcji. Po zastosowaniu do akcji przy użyciu routingu atrybutów wartość trasy zostanie dodana do Values wartości po wybraniu akcji.

Jeśli element IRouteValueProvider jest używany do podawania nowej wartości trasy do akcji, wszystkie akcje w aplikacji muszą również mieć wartość skojarzona z tym kluczem lub mieć niejawną wartość null. Zobacz uwagi, aby uzyskać więcej szczegółów.

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

Uwagi

Typowy schemat wyboru akcji w aplikacji MVC polega na tym, że akcja będzie wymagała dopasowania wartości dla elementu ControllerName i ActionName

Aby można było wybrać akcję, na MyApp.Controllers.HomeController.Index()przykład , Values element musi zawierać wartości { "action": "Index", "controller": "Home" }

Jeśli obszary są używane w aplikacji (zobacz AreaAttribute , które implementuje IRouteValueProvider), wszystkie akcje są brane pod uwagę w obszarze, mając wartość nieobsadowąnull (określoną przez AreaAttribute lub inną IRouteValueProvider) lub są uznawane za "poza" obszarami, mając wartość null.

Rozważmy aplikację z dwoma kontrolerami, z których każda ma metodę Index akcji: — MyApp.Controllers.HomeController.Index()MyApp.Areas.Blog.Controllers.HomeController.Index() - gdzie MyApp.Areas.Blog.Controllers.HomeController ma atrybut [Area("Blog")]area .

Dla Values takich jak: { "action": "Index", "controller": "Home" }

MyApp.Controllers.HomeController.Index() zostanie wybrana. MyApp.Area.Blog.Controllers.HomeController.Index() nie jest uznawany za uprawniony, ponieważ Values wartość "Blog" dla "area" nie zawiera.

Na Values przykład: { "area": "Blog", "action": "Index", "controller": "Home" }

MyApp.Area.Blog.Controllers.HomeController.Index() zostanie wybrana. MyApp.Controllers.HomeController.Index() nie jest uznawany za uprawniony, ponieważ wartości trasy zawierają wartość "area". MyApp.Controllers.HomeController.Index() program nie może odpowiadać żadnej wartości dla wartości "area" innej niż null.

Właściwości

RouteKey

Klucz wartości trasy.

RouteValue

Wartość trasy. Jeśli null wartość trasy jest pusta lub jest pusta, wymagana jest wartość trasy skojarzona z elementem RouteKey lub null.

Dotyczy