Pet*_*šek 0 c# razor asp.net-core asp.net-core-tag-helpers
我在.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";
//...
}
}
}
Run Code Online (Sandbox Code Playgroud)
在_ViewImports.cshtml中,我只是这样:
@using MyApp
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, MyApp //MyApp.TagHelpers
Run Code Online (Sandbox Code Playgroud)
剃刀观看这个:
<blob filename="@mainImage.Filename" alt="@mainImage.Title" />
Run Code Online (Sandbox Code Playgroud)
在csproj我有deps:
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
Run Code Online (Sandbox Code Playgroud)
这个包应该有TagHelpers引用:https://www.nuget.org/packages/Microsoft.AspNetCore.all
最后页面上的结果看起来如下:
<blob filename="babylon.jpeg" alt="babylon.jpg"></blob>
Run Code Online (Sandbox Code Playgroud)
我没有错误或异常,只是没有呈现.
编辑
这是一个没有工作<email>帮助的分离项目.
https://github.com/petrck/dotnet-taghelper-sample
Kir*_*kin 12
你遇到的问题是这一行:
@addTagHelper *, MyApp //MyApp.TagHelpers
Run Code Online (Sandbox Code Playgroud)
虽然它看起来像一个注释,但//MyApp.TagHelpers在这一行上无效并且正在绊倒TagHelper发现逻辑.
只需删除该部分即可.即:
@addTagHelper *, MyApp
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1566 次 |
| 最近记录: |