@section
é para definir que um conteúdo seja substituído em uma exibição compartilhada. Basicamente, é uma maneira de você ajustar sua exibição compartilhada (semelhante a uma Página Mestra em Formulários da Web).
Você pode achar que Scott Gu escreveu isso muito interessante .
Editar: com base em esclarecimentos adicionais de perguntas
A @RenderSection
sintaxe entra na Visualização compartilhada, como:
<div id="sidebar">
@RenderSection("Sidebar", required: false)
</div>
Isso seria colocado na sua visualização com @Section
sintaxe:
@section Sidebar{
<!-- Content Here -->
}
No MVC3 +, você pode definir o arquivo de Layout a ser usado diretamente para a visualização ou pode ter uma visualização padrão para todas as visualizações.
Configurações comuns de exibição podem ser definidas em _ViewStart.cshtml, que define a exibição de layout padrão semelhante a esta:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
Você também pode definir a Visualização compartilhada para usar diretamente no arquivo, como index.cshtml diretamente, conforme mostrado neste snippet.
@{
ViewBag.Title = "Corporate Homepage";
ViewBag.BodyID = "page-home";
Layout = "~/Views/Shared/_Layout2.cshtml";
}
Existem várias maneiras de ajustar essa configuração com mais algumas mencionadas nesta resposta do SO .