如何在TagHelper.Process中获取元素(定义为TagHelper)内容?

Rom*_*kij 9 asp.net-core-mvc tag-helpers

如何将元素定义为TagHelper内容?

例如,元素定义为:

<markdown>bla bla</markdown>
Run Code Online (Sandbox Code Playgroud)

和助手定义为:

[HtmlTargetElement("markdown")]
public class MarkdownTagHelper : TagHelper
{
    public override void Process(TagHelperContext context, TagHelperOutput output)
    {
        var c = output.Content.GetContent(); 
        // c is empty; how to get content "bla bla"?
    }
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*.G. 10

您可以output.GetChildContentAsync()按照文档中的说明使用(值得一读,因为它包含一些检索元素内容的示例).

然后,您将实现标记助手,如下所示:

public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
      var c = (await output.GetChildContentAsync()).GetContent(); 
      // transform markdown in c
}
Run Code Online (Sandbox Code Playgroud)