2016-11-28 66 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

它的工作原理。謝謝。 –

相關問題