ASP.NET Webページコンテンツブロックとヘルパーの違い
-
27-10-2019 - |
質問
ASP.NET WebPagesフレームワークでは、コンテンツブロックとヘルパーの使用の違いは何ですか?
どちらも、HTMLを複数のページに出力するために使用されているようです。どちらもコードを含めることができ、両方ともパラメーターを渡すことができます。
他に違いはありますか?コンテンツブロックとヘルパーをいつ使用する必要がありますか?
より詳しい情報:
コンテンツブロックを使用すると、.cshtml(_makenote.cshtml)ファイルを作成して、ページに挿入するコンテンツを保持します。次に、次のように使用します。
@RenderPage("/Shared/_MakeNote.cshtml")
コンテンツをページに挿入します。このようなコンテンツブロックにパラメーターを渡すことができます。
@RenderPage("/Shared/_MakeNote.cshtml", new { content = "hello from content block" })
それはややインクルードファイルのようなものですが、親ページと範囲を共有していないと思います。
ヘルパーを使用すると、app_codeフォルダー(myhelpers.cshtmlなど)に.cshtmlページを作成し、呼び出したいページにメソッドを配置します。この方法は次のようになります:
@helper MakeNote(string content) {
<div>@content</div>
}
ヘルパーは以下を使用して呼び出されます。
@MyHelpers.MakeNote("Hello from helper")
解決
機能的には多くの違いはありません。ヘルパーは、VWDまたはVisual C#Expressをダウンロードしてバイナリをコンパイルしない限り、app_codeフォルダーに移動する必要があります。App_CodeフォルダーはMVCフレームワークにうまく変換されません。もちろん、それはある時点でMVCにアップグレードする場合にのみ関連します。
私はあなたのマケノートのような一般的な機能的スニペットにヘルパーを使用します。ページのサイト固有のセクションを繰り返すために、「コンテンツブロック」(部分的、本当に)を使用します。