【问题标题】:Adding custom tag helpers添加自定义标签助手
【发布时间】:2016-06-18 17:52:32
【问题描述】:

我一直在尝试添加自定义标记帮助程序,但是当我尝试将程序集添加为 _ViewImports.cshtml 中的引用时,它无法识别它。

我正在这样做(_ViewImports.cshtml):

@using ProjectName.Web.Main
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, TagHelpers

我也试过了:

@addTagHelper *, ProjectName.Web.Main.TagHelpers

我的标签助手如下:

using Microsoft.AspNetCore.Razor.TagHelpers;
namespace ProjectName.Web.Main.TagHelpers
{
    [HtmlTargetElement(Attributes="class")]
    public class CssClassTagHelper : TagHelper
    {
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            output.Attributes.Add(new TagHelperAttribute("class","testing"));

        }
    }
}

但是当我运行应用程序时,我得到以下异常:

无法解析包含程序集“TagHelpers”的 TagHelper。错误: 无法加载文件或程序集 'TagHelpers,Culture=neutral, PublicKeyToken=null' 或其依赖项之一。系统无法 找到指定的文件。 @addTagHelper *, TagHelpers

我已经用谷歌搜索过了,但我在不同的 dotnetcore 版本之间得到了不同的答案,到目前为止我还没有找到任何解决方案。

我正在使用 RC2。

有什么想法、建议吗?

【问题讨论】:

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


    【解决方案1】:

    根据 Asp.Net Core 文档:

    公开这个项目中的所有标签助手(创建一个 名为 AuthoringTagHelpers 的程序集),您将使用以下内容:

    @using AuthoringTagHelpers 
    @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
    @addTagHelper "*, AuthoringTagHelpers"
    

    换句话说,addTagHelper 的第二个参数是程序集名称而不是命名空间。

    所以你应该在_ViewImports.cshtml 中使用ProjectName.Web.Main(我假设你的项目名称是):

    @using ProjectName.Web.Main
    @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
    @addTagHelper *, ProjectName.Web.Main
    

    【讨论】:

    • 谢谢老兄!这为我解决了。这么小的事情导致这样的问题:-D Shot Man!
    猜你喜欢
    • 2020-06-04
    • 2019-11-07
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    相关资源
    最近更新 更多