我对 .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
剃刀视图看起来像这样:
<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