What does this code of rendersection mean?
Scott wrote at one point
The first parameter to the “RenderSection()” helper method specifies the name of the section we want to render at that location in the layout template. The second parameter is optional, and allows us to define whether the section we are rendering is required or not. If a section is “required”, then Razor will throw an error at runtime if that section is not implemented within a view template that is based on the layout file (which can make it easier to track down content errors).
So, what RenderSection does, is rendering a section defined in the template/view (not the general _Layout). A little bit furtherdown under "Implementing the “SideBar” Section in our View Template" he explains how to implement a section.
So all in all, what you have is a section called "head" that renders a section called "head" in a view that's further down/nested.
Edit: have a look at http://blogs.msdn.com/b/marcinon/archive/2010/12/15/razor-nested-layouts-and-redefined-sections.aspx to see what I mean with nested views - but note that this article is over a year old now.
MasterLayout:
@RenderSection("head", false)
SubLayout:
@{
Layout = "~/Views/_MasterLayout.cshtml";
}
@section head
{
@RenderSection("head")
}
Content:
@{
Layout = "~/Views/_SubLayout.cshtml";
}
@section head
{
<title>Content-Layout</title>
}
You define the section in a view and render it in the _Layout.cshtml.
In your layout (master) page place this:
@RenderSection("head", false)
In your view page place this:
@section head {
PUT VIEW SPECIFIC CODE HERE
}
Here "head" is the name of section that you can define in your view page.
Its somewhat like ContentPlaceHolder that we use in asp.net webforms.