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

时间:2016-11-28 17:28:49

标签: asp.net-core-mvc tag-helpers

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

E.g。元素定义为:

<markdown>bla bla</markdown>

Helper定义为:

[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"?
    }
}

1 个答案:

答案 0 :(得分:9)

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

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

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