我一直在尝试添加自定义标记帮助器,但是当我尝试在_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
我已经使用Google搜索了但是我在不同的dotnetcore版本之间得到了不同的答案,到目前为止我还没有找到任何解决方案。
我正在使用RC2。
任何想法,建议?
答案 0 :(得分:9)
根据Asp.Net核心文档:
公开此项目中的所有Tag Helpers(创建一个 名为AuthoringTagHelpers的程序集,您将使用以下内容:
@using AuthoringTagHelpers
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper "*, AuthoringTagHelpers"
换句话说,addTagHelper
的第二个参数是程序集名称而不是命名空间。
所以你应该在ProjectName.Web.Main
中使用_ViewImports.cshtml
(我假设你的项目名称是):
@using ProjectName.Web.Main
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, ProjectName.Web.Main