jac*_*per 4 c# asp.net-core-mvc
我一直在尝试添加自定义标记帮助程序,但是当我尝试在_ViewImports.cshtml中添加程序集作为引用时,它无法识别它.
我这样做(_ViewImports.cshtml):
@using ProjectName.Web.Main
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, TagHelpers
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
@addTagHelper *, ProjectName.Web.Main.TagHelpers
Run Code Online (Sandbox Code Playgroud)
我的标签助手如下:
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"));
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行应用程序时,我得到以下异常:
无法解析包含程序集"TagHelpers"的TagHelper.错误:无法加载文件或程序集"TagHelpers,Culture = neutral,PublicKeyToken = null"或其依赖项之一.该系统找不到指定的文件.@addTagHelper*,TagHelpers
我已经谷歌搜索了它,但我在不同的dotnetcore版本之间得到了混合的答案,到目前为止我还没有找到任何解决方案.
我正在使用RC2.
任何想法,建议?
根据Asp.Net核心文档:
要公开此项目中的所有Tag Helpers(创建名为AuthoringTagHelpers的程序集),您将使用以下内容:
@using AuthoringTagHelpers
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper "*, AuthoringTagHelpers"
Run Code Online (Sandbox Code Playgroud)
换句话说,第二个参数addTagHelper
是程序集名称而不是命名空间.
所以你应该使用ProjectName.Web.Main
(我假设你的项目名称)_ViewImports.cshtml
:
@using ProjectName.Web.Main
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, ProjectName.Web.Main
Run Code Online (Sandbox Code Playgroud)