Включить параметры в ASP.NET Core REST URL

У меня есть проект, который содержит отчеты. Читая о лучших практиках отдыха, я думаю, что у меня должен быть URL-адрес, подобный следующему, на страницу со списком всех отчетов:

http://../Projects/23/Reports

Для просмотра конкретного отчета я бы использовал ссылку, подобную следующей:

http://../Projects/23/Reports/2

Я безуспешно пытался создать эти ссылки с помощью помощников тегов asp. Например:

<a asp-page="/Projects/{pid}/Reports/{rid}" asp-route-pid="@item.ID" asp-route-rid="@report.ID" >View Report</a>

По умолчанию это выглядит так, как будто asp-route-* будет привязывать эти элементы как параметры (то есть? Pid=23&rid=2), и это может сработать, но это не похоже на рекомендуемые URL-адреса.

1 ответ

Вы можете определить собственную страницу маршрутизации бритвы рядом с директивой @page в вашем файле *.cshtml.

@page "{pid}/{rid}"

В результате у вас будет следующий URL, когда ваша страница бритвы - Projects.cshtml.

/Projects/23/2

Вы также можете добавить статическую информацию в свой URL.

@page "{pid}/Reports/{rid}"

Теперь ваш URL будет

/Projects/23/Reports/2

Если вы хотите определить маршрутизацию для всех страниц бритвы, вы можете посмотреть, как я это сделал, чтобы определить текущий язык в этом посте.

Ядро Asp.net Локализация всегда возвращает английский язык

Я надеюсь, что это помогает.

Другие вопросы по тегам