@section
est pour définir un contenu sont remplacés à partir d'une vue partagée. En gros, c'est un moyen pour vous d'ajuster votre vue partagée (similaire à une page maître dans Web Forms).
Vous pourriez trouver l'article de Scott Gu à ce sujet très intéressant .
Edit: Basé sur une clarification de question supplémentaire
La @RenderSection
syntaxe entre dans la vue partagée, telle que:
<div id="sidebar">
@RenderSection("Sidebar", required: false)
</div>
Cela serait alors placé dans votre vue avec la @Section
syntaxe:
@section Sidebar{
<!-- Content Here -->
}
Dans MVC3 +, vous pouvez définir directement le fichier de mise en page à utiliser pour la vue ou vous pouvez avoir une vue par défaut pour toutes les vues.
Les paramètres d'affichage communs peuvent être définis dans _ViewStart.cshtml qui définit la vue de mise en page par défaut semblable à celle-ci:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
Vous pouvez également définir la vue partagée à utiliser directement dans le fichier, comme index.cshtml directement, comme indiqué dans cet extrait de code.
@{
ViewBag.Title = "Corporate Homepage";
ViewBag.BodyID = "page-home";
Layout = "~/Views/Shared/_Layout2.cshtml";
}
Il existe plusieurs façons d'ajuster ce paramètre, quelques autres étant mentionnées dans cette réponse SO .