web-dev-qa-db-ja.com

MVC Razorビューで@RenderBodyを使用する意味は何ですか?

私のMVC4かみそりのレイアウトでは、@RenderSectionを使用しており、@RenderBodyを気にしません。

次に、ビューですべてをセクションに配置します。

これは、物事をセクションに入れたくない人々にとってより簡単にすること以外に、@RenderBodyのポイントは何であるか疑問に思います。 @RenderBody@RenderSectionの中に何か違うものはありますか?

14
user1943020

@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

19
Robert Harvey