2016-11-28 63 views
2

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

E.g.元素定义为:

<markdown>bla bla</markdown> 

和助手定义为:

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

是,在运行时或设计时?如果是第二个,你可以在你的'_ViewImports.cshtml'中添加的程序集中找到实现'ITagHelper'的所有类。在第一种情况下,我不知道ASP.Net Core是否在运行时公开这些信息 –

+0

。元素的内容。在TagHelper.Proccess里面。 –

+0

啊,我完全误读了这个问题。是的,那是可以使用'outputput.GetChildContentAsync()' –

回答

1

您可以使用output.GetChildContentAsync()the docs解释(值得一读,因为它包含了用于检索元素的内容几个例子)。

然后,您将执行标记的帮手,如:

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

它的工作原理。谢谢。 –

相关问题