自定义 TagHelper 在 ASP.NET Web 项目 (.Net 5) 中不起作用

问题描述

我有一个自定义 TagHelper,如文档中所述:A minimal Tag Helper

using Microsoft.AspNetCore.Razor.TagHelpers;

namespace mytagHelpers.TagHelpers
{
    public class EmailTagHelper : TagHelper
    {
        public override void Process(TagHelperContext context,TagHelperOutput output)
        {
            output.TagName = "a";    // Replaces <email> with <a> tag
        }
    }
}

我在 _ViewImports.cshtml添加了我的 EmailTagHelper:

@addTagHelper *,mytagHelpers

并在 Razor 页面上使用它

<email></email>

但它不起作用。

解决方法

我的项目已将 Assembly Name 设置为 MyProject

文件MyProject.csproj

 <PropertyGroup>
        <AssemblyName>MyProject</AssemblyName>
 </PropertyGroup>

因此,生成的程序集将具有文件名 MyProject.dll

为了使我的 EmailTagHelper 工作,我需要使用正确的程序集名称添加它:

@addTagHelper *,MyProject

它有效,尽管我的 EmailTagHelper 的父命名空间仍然是相同的 MyTagHelpers