スコットはある時点で書いた
「RenderSection()」ヘルパーメソッドの最初のパラメーターは、レイアウトテンプレートのその場所にレンダリングするセクションの名前を指定します。2番目のパラメーターはオプションであり、レンダリングするセクションが必須かどうかを定義できます。セクションが「必須」の場合、そのセクションがレイアウトファイルに基づくビューテンプレート内に実装されていない場合、Razorは実行時にエラーをスローします(これにより、コンテンツエラーの追跡が容易になります)。
したがって、RenderSectionが行うことは、(一般的な_Layoutではなく)テンプレート/ビューで定義されたセクションをレンダリングすることです。「ビューテンプレートでの「SideBar」セクションの実装」の少し下で、セクションの実装方法について説明します。
つまり、全体として、「head」と呼ばれるセクションが、さらに下/ネストされたビューに「head」と呼ばれるセクションをレンダリングします。
編集:http://blogs.msdn.com/b/marcinon/archive/2010/12/15/razor-nested-layouts-and-redefined-sections.aspxを見て、ネストされたビューの意味を確認してください-ただし、この記事は1年以上前のものであることに注意してください。
MasterLayout:
@RenderSection("head", false)
サブレイアウト:
@{
Layout = "~/Views/_MasterLayout.cshtml";
}
@section head
{
@RenderSection("head")
}
コンテンツ:
@{
Layout = "~/Views/_SubLayout.cshtml";
}
@section head
{
<title>Content-Layout</title>
}