使用 MVC Core 中的 TagHelper 链接到页面的指定部分

Linking to a specified section of a page using a TagHelper in MVC Core

我有一个名为 Legal 的视图,由 HomeController

控制

我可以 link 使用锚标记或 TagHelper 访问此页面:

<a asp-controller="Home" asp-action="Legal">Cookie policy</a>

在视图 Legal 的 html 中有一个部分带有 id="cookies"

使用常规锚标记,我可以让页面自动滚动到那里:

<a href="/Legal#cookies">Cookie policy</a>

当我尝试在 TagHelper asp-action="Legal#cookies" 中做同样的事情时,锚是用 href="/Legal%23cookies" 生成的,我的控制器没有获取它。

我已阅读 如何在常规锚标记中使用 Razor 解决此问题。但是,我想使用 TagHelper 来执行此操作。有办法吗?

您可以使用 asp-fragment 属性。它定义了一个 URL 片段以附加到 # 之后的 URL。

<a asp-controller="Home" asp-action="Legal" asp-fragment="cookies">Cookie policy</a>

会生成HTML:

<a href="/Legal#cookies">Cookie policy</a>