TagHelper 未呈现

TagHelper is not rendered

我对 .NET Core 2.0 中的 TagHelpers 有一个有趣的问题。原来的帮手工作似乎是对的。但海关没有。我编写了受原始图像帮助器启发的代码 (https://github.com/aspnet/Mvc/blob/dev/src/Microsoft.AspNetCore.Mvc.TagHelpers/ImageTagHelper.cs),但仍然无法正常工作。

这是我的帮手:

namespace MyApp.TagHelpers
{
    [HtmlTargetElement("Blob", Attributes = FilenameAttributeName + "," + AltAttributeName, TagStructure = TagStructure.WithoutEndTag)]
    public class BlobTagHelper : TagHelper
    {
        public BlobTagHelper() { }

        private const string FilenameAttributeName = "filename";
        private const string AltAttributeName = "alt";

        [HtmlAttributeName(FilenameAttributeName)]
        public string Filename { get; set; }


        [HtmlAttributeName(AltAttributeName)]
        public string Alt { get; set; }

        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            output.TagName = "img";
            //...
        }
    }    
}

在_ViewImports.cshtml中我有简单的:

@using MyApp

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, MyApp //MyApp.TagHelpers

Razor 视图如下所示:

<blob filename="@mainImage.Filename" alt="@mainImage.Title" />

在 csproj 我有部门:

<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />

这个包应该有 TagHelpers 引用: https://www.nuget.org/packages/Microsoft.AspNetCore.all

页面上的最终结果如下:

<blob filename="babylon.jpeg" alt="babylon.jpg"></blob>

我没有遇到任何错误或异常,只是没有呈现。

编辑

这里是单独的项目,没有工作 <email> 助手。 https://github.com/petrck/dotnet-taghelper-sample

您遇到的问题在这一行:

@addTagHelper *, MyApp //MyApp.TagHelpers

虽然它看起来像一条评论,但 //MyApp.TagHelpers 在此行无效并且会破坏 TagHelper 发现逻辑。

只需删除该部分即可。即:

@addTagHelper *, MyApp