私のMVC4かみそりのレイアウトでは、@RenderSection
を使用しており、@RenderBody
を気にしません。
次に、ビューですべてをセクションに配置します。
これは、物事をセクションに入れたくない人々にとってより簡単にすること以外に、@RenderBody
のポイントは何であるか疑問に思います。 @RenderBody
と@RenderSection
の中に何か違うものはありますか?
@RenderBody
は、名前の付いたセクション内にないページのコンテンツをレンダリングします。Ifallコンテンツが定義済みのセクションの1つに含まれているため、意味がありません。しかしながら...
Razor構文では、@RenderSection
がマスターページを置き換えます。これにより、特定の領域のページのセクションを切り分けて、@RenderBody
宣言が配置されている場所にコンテンツの本体を自然に出現させることができます。
請求書を書いているとしましょう。 RenderBody
領域は、請求書の広告申込情報を含むページの部分になります。これはほとんどのレポートに当てはまります。常にヘッダーセクション、ボディセクション、フッターセクションがあります。
おそらく、Webページの適切な領域にセクションをレンダリングすると、常にページの下部に表示されるようにフッターをスタイリングするなど、適切なセマンティック動作を取得できます。
<footer>
@RenderSection("Footer", @<span>This is my footer!</span>)
</footer>
http://msdn.Microsoft.com/en-us/vs2010trainingcourse_aspnetmvc3razor_topic2.aspx
http://haacked.com/archive/2011/03/05/defining-default-content-for-a-razor-layout-section.aspx