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

Chr*_*cle 4 anchor asp.net-mvc asp.net-core-tag-helpers

我有一个名为Legal控制的视图HomeController

我可以使用锚标记或 TagHelper 链接到此页面:

<a asp-controller="Home" asp-action="Legal">Cookie policy</a>
Run Code Online (Sandbox Code Playgroud)

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

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

<a href="/Legal#cookies">Cookie policy</a>
Run Code Online (Sandbox Code Playgroud)

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

在这个相关问题中读到如何在常规锚标签中使用 Razor 来解决这个问题。但是,我想使用 TagHelper 来做到这一点。有没有办法做到这一点?

小智 6

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

<a asp-controller="Home" asp-action="Legal" asp-fragment="cookies">Cookie policy</a>
Run Code Online (Sandbox Code Playgroud)

它将生成 HTML:

<a href="/Legal#cookies">Cookie policy</a>
Run Code Online (Sandbox Code Playgroud)