Получить значения маршрутов на бритвенных страницах - PullRequest
0 голосов
/ 06 мая 2018

Я хочу знать, как я могу получить значения маршрута в Razor Pages (Page.cshtml). Ex. https://localhost:44320/AdminPanel/Admins если бы я использовал MVC, я бы получил эти данные как

var controller = ViewContext.RouteData.Values["Controller"]; //AdminPanel
var action = ViewContext.RouteData.Values["Action"]; //Admins

Как я могу получить эти значения в Razor Pages?

Для любого, кто пытается получить его, вы можете получить его по:

var fullRoute = ViewContext.RouteData.Values["Page"]; // AdminPanel/Admin

1 Ответ

0 голосов
/ 20 июля 2018

Если в вашей папке Pages есть страница с именем AdminPanel.cshtml, добавьте параметр после @page в первой строке, например:

@page "{action}"

Затем в коде (AdminPanel.cshtml.cs) добавьте реквизит и параметр к вашему OnGet методу следующим образом:

private string _action;

public void OnGet(string action) {
  _action = action; //now do whatever you want with it
}

Вы можете добавить геттер, если хотите получить к нему доступ в своей модели на странице cshtml.

Примечание: выполнение вышеизложенного заставит эту страницу требовать указания действия. Кроме того, вы также можете сделать его необязательным, добавив знак вопроса (@page "{action?}") и установив значение по умолчанию в своем OnGet (OnGet(string action="")).

...