Данные маршрута в Razor Pages

У меня есть страница с бритвой, вызывающая "приложение" в папке Pages по умолчанию.

Я прекрасно могу просматривать эту страницу с http://myapp.com/app

Теперь я хочу добавить параметр маршрута, чтобы URL-адрес выглядел так: http:/myapp.com/app/greg

Я хочу извлечь greg из URL-адреса и использовать его на странице.

Итак, я попробовал это:

HttpGet("app/{name}")]
public void OnGet(string name)
{
    //Do something with name.
}

Но я получаю ошибку 404.


person Greg Gum    schedule 06.05.2018    source источник


Ответы (1)


Похоже, маршрутизация атрибутов не поддерживается в Razor Pages. Это сработало для меня.

app.cshtml:

@page "{name}"

app.cshtml.cs:

[BindProperty(SupportsGet = true)]
public string Name{ get; set; }

public void OnGet()
{
     //Do something with this.Name...
}

Директива страницы создает маршрут, а атрибут BindProperty связывает значение со свойством.

Если вместо этого вы хотите получить значение из строки запроса, измените @page "{name}" на @page

person Greg Gum    schedule 06.05.2018