我的自定义TagHelpers在Asp.net核心中不起作用

时间:2018-11-25 09:05:18

标签: asp.net asp.net-core

我按照一些指南为custom tag helper创建了ASP Core

我在一个tag helpers中有两个namespace

namespace Forum.Core.TagHelpers
{

    [HtmlTargetElement(Attributes = nameof(Condition))]
    public class ConditionTagHelper : TagHelper
    {
        public bool Condition { get; set; }

        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            if (!Condition)
            {
                output.SuppressOutput();
            }
        }
    }

}

namespace Forum.Core.TagHelpers
{
    [HtmlTargetElement(Attributes = nameof(Permission))]
    class RolePermissionTagHelper : TagHelper
    {
        public bool Permission { get; set; }
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            output.SuppressOutput();
        }

    }
}

然后我将依赖项添加到

  

_ViewImports.cshtml

@addTagHelper *,Microsoft.AspNetCore.Mvc.TagHelpers

@addTagHelper *,Forum.Core

但是我只能在页面中使用条件

True style of code

MyProblem

欢迎提出任何建议。

2 个答案:

答案 0 :(得分:0)

这是因为您的Permissiontaghelper不公开。试试这个:

namespace Forum.Core.TagHelpers
{
    [HtmlTargetElement(Attributes = nameof(Permission))]
    public class RolePermissionTagHelper : TagHelper
    {
        public bool Permission { get; set; }
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            output.SuppressOutput();
        }

    }
}

答案 1 :(得分:-2)

_ViewImports.cshtml中,您只需要添加根名称空间

@addTagHelper *, Forum