Avr*_*oel 4 tag-helpers asp.net-core asp.net-core-tag-helpers
我写了一个标签助手,我可以使用如下......
<mytaghelper attr1="jim"></mytaghelper>
Run Code Online (Sandbox Code Playgroud)
我希望能够将其缩短为...
<mytaghelper attr1="jim">
Run Code Online (Sandbox Code Playgroud)
...或者至少...
<mytaghelper attr1="jim"/>
Run Code Online (Sandbox Code Playgroud)
但是,我无法让它发挥作用。这是 Process 方法的一些示例代码...
public override void Process(TagHelperContext context, TagHelperOutput output) {
output.TagName = "div";
output.PreContent.SetHtmlContent("<div>");
output.Content.SetHtmlContent("OUTPUT HTML GOES HERE");
output.PostContent.SetHtmlContent("</div>");
output.Attributes.Clear();
}
Run Code Online (Sandbox Code Playgroud)
我曾尝试向类上的属性添加TagStructure设置HtmlTargetElement...
[HtmlTargetElement("mytaghelper", TagStructure = TagStructure.WithoutEndTag)]
Run Code Online (Sandbox Code Playgroud)
……不过好像没什么区别。<mytaghelper attr1="jim"/>生成<div />并<mytaghelper attr1="jim"></mytaghelper>生成<div></mytaghelper>.
如果我设置TagStructure为NormalOrSelfClosing然后包含一个结束标记有效,但<mytaghelper attr1="jim"/>给出一个空的<div />
任何人都能够解释我需要做什么?
TagStructure.WithoutEndTag能够编写仅带有开始标签或自闭合标签的标签,但输出将是<div >或<div/>。自闭合锚标记不是有效的 HTML,因此您不想创建一个,但您可能希望创建一个自闭合的标签助手。标签助手在读取标签后设置TagMode属性的类型。在 process 方法中添加以下代码行:
output.TagMode = TagMode.StartTagAndEndTag;
Run Code Online (Sandbox Code Playgroud)
花点时间阅读ASP.NET Core 中的 Author Tag Helpers,它完美地涵盖了这一点。
| 归档时间: |
|
| 查看次数: |
1034 次 |
| 最近记录: |