.net core бритва страниц несколько атрибутов маршрутизации - PullRequest
0 голосов
/ 20 октября 2018

Я использую бритвенные страницы (не View / Controller), и моя цель - построить следующие два маршрута для одной и той же страницы:

  • / GetItem {id: int}
  • / GetItem {title: string}

Они должны приводить к двум различным "действиям" OnGetAsync(int id) и OnGetAsync(string title).

Изначально я хотел использовать атрибуты маршрутизации внутриPageModel, но пришел к выводу, что они не поддерживаются для RazorPages PageModel - это правильно?Сейчас я пытаюсь добиться этого с помощью директив @page, но ничего не нашел.Я бы предпочел не использовать маршруты «настройки конфигурации», так как я хочу, чтобы мои маршруты были локальными по отношению к странице с их использованием.

Каков будет правильный подход к этому?

Спасибо за устранение моего замешательства!

1 Ответ

0 голосов
/ 20 октября 2018

На одной странице Razor не может быть двух методов-обработчиков с одинаковым именем *, независимо от различий в объявлениях параметров.Методы-обработчики не являются частью процесса выбора маршрутизации, как методы действий в MVC.

Лучший способ достичь желаемого - использовать именованных обработчиков .Затем вы можете выбрать, хотите ли вы включить имя метода-обработчика как часть URL-адреса или в качестве значения строки запроса.

* Вы даже не можете дифференцировать имена методов-обработчиков, добавляя «Async» к одному,Что касается Razor Pages, то OnGet и OnGetAsync одинаковы.

...