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
我对 .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