1

我有一个包含报告的项目。阅读 Rest 最佳实践,看起来我应该有一个如下所示的 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。

4

1 回答 1

2

您可以在 *.cshtml 文件中的 @page 指令旁边定义自定义剃须刀页面路由。

@page "{pid}/{rid}"

因此,当您的剃刀页面是 Projects.cshtml 时,您将拥有以下 URL。

/Projects/23/2

您还可以在 URL 中添加静态信息。

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

现在您的网址将是

/Projects/23/Reports/2

如果你想为所有剃须刀页面定义路由,你可以看看我是如何做到的,以便在这篇文章中定义当前语言。

Asp.net core Localization 总是返回英语文化

我希望它有所帮助。

于 2017-11-23T10:36:04.020 回答