我创建了一个标记助手,以在菜单中标识当前活动页面。为此,我遵循以下指南来实现ActiveRouteTagHelper: https://benjii.me/2017/01/is-active-route-tag-helper-asp-net-mvc-core/
因此,我创建了一个名为“ Helpers”的文件夹,并添加了一个新类“ ActiveRouteTagHelper.cs”。 此类包含以下代码:
namespace MyWebsiteNamespace.Helpers
{
[HtmlTargetElement(Attributes = "is-active-route")]
public class ActiveRouteTagHelper : TagHelper
{
/* snipped, because this is exactly the same as in the linked document and doesn't matter to my question */
}
}
,然后将我的标签助手名称空间添加到_ViewImports.cshtml文件中,如下所示:
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, MyWebsiteNamespace.Helpers
在我的_Layout.cshtml中,我有以下代码:
<ul class="navbar-nav">
<li class="nav-item">
<a is-active-route class="nav-link pl-0 text-white" asp-controller="Home" asp-action="Index">Home</a>
</li>
<li class="nav-item">
<a is-active-route class="nav-link text-white" asp-controller="Home" asp-action="Privacy">Privacy</a>
</li>
</ul>
我可以验证我的Tag Helper从未被调用,因为我在代码中放置了永不触发的断点。
有人看到我在做什么错吗?