@section
è per la definizione di un contenuto vengono sostituiti da una vista condivisa. Fondamentalmente, è un modo per regolare la vista condivisa (simile a una pagina master in Web Form).
Potresti trovare Scott Gu scrivere su questo molto interessante .
Modifica: basato su ulteriori chiarimenti sulle domande
La @RenderSection
sintassi va nella vista condivisa, ad esempio:
<div id="sidebar">
@RenderSection("Sidebar", required: false)
</div>
Questo verrebbe quindi inserito nella tua vista con la @Section
sintassi:
@section Sidebar{
<!-- Content Here -->
}
In MVC3 + è possibile definire il file di layout da utilizzare direttamente per la vista oppure è possibile avere una vista predefinita per tutte le viste.
Le impostazioni della vista comune possono essere impostate in _ViewStart.cshtml che definisce la vista di layout predefinita simile a questa:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
Puoi anche impostare la visualizzazione condivisa per utilizzarla direttamente nel file, ad esempio index.cshtml direttamente come mostrato in questo frammento.
@{
ViewBag.Title = "Corporate Homepage";
ViewBag.BodyID = "page-home";
Layout = "~/Views/Shared/_Layout2.cshtml";
}
Esistono diversi modi per regolare questa impostazione con alcuni altri menzionati in questa risposta SO .