2016-11-21 12 views
1

ASP.NETコアタグヘルパーを使用して、HTMLエレメントのInnerTextを取得するためのProcessAsyncの使用例がたくさんあります。たとえば、次のように正常に動作します。ASP.NETコアタグヘルパーから同期的にInnerTextを取得する方法

public override async Task ProcessAsync(TagHelperContext context, 
           TagHelperOutput output) 
    { 
     var childContent = await output.GetChildContentAsync(); 
     var innerHtml = childContent.GetContent(); 
     output.Content.SetHtmlContent("---" + innerHtml + "---"); 
    } 

ただし、私はそれを同期的に取得したいと思います。どのようにしてプロセス(同期)でインテルテキストを取得できますか?

public override void Process(TagHelperContext context, TagHelperOutput output) 
    { 
     var innerHtml = output.Content.GetContent(); 
     output.Content.SetHtmlContent("---" + innerHtml + "---"); 
    } 

答えて

3

なぜですか?あなたの状況にはどんな違いがありますか?同期アクセスが必要だと思っていることは何ですか?あなたは、あなたがそれを必要としないと考えられる場合

その後、

var innerHtml = output.GetChildContentAsync().Result.GetContent(); 
+0

おかげで@blowdart。 asp.netチームからの私の理解は、非同期が必要ない場合(単純な文字列コンカットの仕事をしているように、非同期は必要ではないだけでなく、広告オーバーヘッドでもあります) –

+1

Razor is asyncあなたはすでに非同期です。違いはありません。 – blowdart

+0

意味があります。ありがとうございます。 –

関連する問題