活动路径自定义TagHelper不会呈现

时间:2019-07-25 08:51:42

标签: c# asp.net-mvc asp.net-core asp.net-core-tag-helpers

我创建了一个具有属性“ is-active-route”的新标签帮助器(ActiveRouteTagHelper)。但是,在任何Razor页面上使用此属性时,都不会调用帮助程序。该应用程序在.NET Core 2.2上运行。

我确保已将@addTagHelper引用添加到_ViewImports中,并且该类和重写都是公共的。

_ViewImports.cshtml

@using SIRS_Web
@using SIRS_Web.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, SIRS_Web

ActiveRouteTagHelper.cs

namespace SIRS_Web.TagHelpers
{
    [HtmlTargetElement(Attributes = "is-active-route")]
    public class ActiveRouteTagHelper : TagHelper
    {
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            output.Attributes.RemoveAll("is-active-route");
        }
    }

_Layout.cshtml

    ...
    <a is-active-route href="#">Link</a>
    ...

我在流程覆盖的第一行中添加了一个断点,但从未达到此断点,并且属性is-active-route出现在页面中。

1 个答案:

答案 0 :(得分:1)

@addTagHelper指令不使用名称空间,而使用程序集名称。那将是你的问题。

请花点时间阅读以下链接:

https://docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/authoring?view=aspnetcore-2.2#a-minimal-tag-helper