2016-11-16 16 views
0

ASP.NET Coreの前に、いくつかの関数の引数としてRazorマークアップを渡すことができました。しかし、それはもはや動かないようです。例えば引数からASP.NET Core Razorのマークアップをレンダリングする

、でもこれらの単純な例は何もレンダリングしません:私は間違って

@{ 
    Func<object, HelperResult> markup1 = @<text>hello world</text>; 
    new HtmlString(markup1.Invoke(null).ToString()); 

    Func<object, HelperResult> markup2 = @<h1>hello world</h1>; 
    new HtmlString(markup2.Invoke(null).ToString()); 
} 

何をしているのですか?

+0

"それは何もレンダリングしません" - それで少なくともコンパイル/ビルドしますか? – Dai

+0

@Daiコンパイルして実行しますが、エラーはありません。しかし、そのマークアップはレンダリングされません。 – grokky

答えて

2

結果で何もしないので、結果はレンダリングされません。しかし、あなたはそれが正しく動作しません呼び出す方法正しいHTML結果を返すnew HtmlString(markup.Invoke(null).ToString());表現で

@{ 
    Func<object, HelperResult> markup = @<text>hello world</text>; 
    new HtmlString(markup.Invoke(null).ToString()); 
} 

。結果を印刷するスニペットがあります。

@{ 

    Func<object, HelperResult> markup = @<text>hello world</text>; 
    var html = markup.Invoke(null); 
    await html.WriteAction(ViewContext.Writer); 
} 

あなたは私たちが明示的にどこに書き込みをするためのHTML変数(HtmlResult)を教えてくれ、ここでわかります。この例では、のViewContext.Writerに書き込むことになります。

関連する問題