Маршрутизация .NET Core Razor в стиле REST - PullRequest
0 голосов
/ 26 февраля 2019

Я создаю приложение ASP.CORE Razor и имею следующую структуру каталогов:

Pages/Movies
Pages/Movies/Actors

В каждом из каталогов есть страница указателя для отображения списка фильмов и актеров для определенного фильма.соответственно.

Я пытаюсь создать ссылку из каждого фильма со страницы индекса фильмов до индекса актеров для конкретного фильма, для которого всегда требуется идентификатор фильма.

URL-адрес, по которому нужно найти всех актеров для фильма, должен быть

/Movies/{movieId}/Actors

Ссылка из индекса фильмов:

<a asp-page="./@movieModel.Id/Actors/Index">Actors</a>

@ Директива страницы на странице индекса актеров:

@page "Movies/{movieId}/Actors/Index"

Однако это не работает, потому что ссылка, отображаемая в каждом фильме, просто /movies, потому что у меня, очевидно, нет правильной связи.

1 Ответ

0 голосов
/ 26 февраля 2019

Если вы хотите иметь абсолютный URL-адрес, такой как /Movies/1/Actors/Index, для индекса актора, вам сначала нужно использовать "/"

@page "/Movies/{movieId}/Actors/Index"

, иначе вы получите вложенный URL-адрес, например /Movies/Actors/Movies/1/Actors/Index.

Кроме asp-page, вы также можете использовать @Url.Page

<a href="@Url.Page("./Actors/Index",new { movieId = @movieModel.Id})">Actors</a>
<a asp-page="./Actors/Index" asp-route-movieId="@movieModel.Id">Actors</a>
...