我一直在尝试添加自定义标签助手,但当我尝试将程序集添加为 _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"));
}
}
}
但是当我运行该应用程序时,出现以下异常:
Cannot resolve TagHelper containing assembly 'TagHelpers'. Error: Could not load file or assembly 'TagHelpers, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. @addTagHelper *, TagHelpers
我已经用谷歌搜索过了,但我在不同的 dotnetcore 版本之间得到了混合的答案,到目前为止我还没有找到任何解决方案。
我正在使用 RC2。
有什么想法、建议吗?
最佳答案
根据 Asp.Net Core 文档:
To expose all of the Tag Helpers in this project (which creates an assembly named AuthoringTagHelpers), you would use the following:
@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
关于c# - 添加自定义标签助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37899984/