.NET Core Razor 路由到 REST 风格的路由

.NET Core Razor Routing to REST style routes

我正在构建一个 ASP.CORE Razor 应用程序并具有以下目录结构:

Pages/Movies
Pages/Movies/Actors

每个目录中都有一个索引页面,分别显示特定电影的电影列表和演员列表。

我正在尝试从每部电影构建一个 link,从电影索引页面一直到特定电影的演员索引,这始终需要电影 ID。

查找电影所有演员的 URL 应该是

/Movies/{movieId}/Actors
来自电影索引的

Link 是

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

Actor 索引页上的@Page 指令是

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

但这不起作用,因为每部电影中显示的 link 只是 /movies,因为我显然没有正确连接它。

如果你想要像 /Movies/1/Actors/Index 这样的绝对 url 作为 Actor 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>