2010-11-12 7 views
54

Je peux utiliser ContentPlaceHolder avec les moteurs de vue Webforms pour placer des éléments dans différents emplacements de la page maître.ContentPlaceHolder dans Razor?

Comment faire avec Razor?

<div id="content"> 
     <asp:ContentPlaceHolder ID="MainContent" runat="server"> 
     </asp:ContentPlaceHolder> 
    </div> 
    <div id="footer"> 
     <asp:ContentPlaceHolder ID="Footer" runat="server"> 
     </asp:ContentPlaceHolder> 
    </div> 
+0

Answer by @jgauffin est assez bon, mais ce qui suit est aussi un message bien écrit par Scott Gu qui explique en détail comment fonctionnent les sections http://weblogs.asp.net/scottgu/archive /2010/12/30/asp-net-mvc-3-layouts-and-sections-with-razor.aspx – N30

Répondre

89

Encore une fois, j'ai réussi à demander avant de trouver les mots-clés de recherche correcte dans Google.

Dans la mise en page

@RenderSection("footer", required: false) 

Voir exemple

<h2>About</h2> 

<p> 
    Some stuff about this page. 
</p> 

<p> 
    The current date and time: @DateTime.Now 
</p> 

@section footer { 

    Copyright (c) 2010, Robert Sundström. 

} 
+6

BTW dans MVC 3 RC le paramètre 'RenderSection' est passé de' optionnel' à 'obligatoire' (et son sens inversé, bien sûr). Donc, il ressemblerait à ceci: @RenderSection ("footer", requis: false) (J'ai édité la réponse pour refléter cela.) – Eilon

+0

exactement ce que je cherchais. merci pour cette question et réponse :) – Jason

+0

pourquoi nous donnons la rendu comme faux? – Duk

10

Impossible laisser un commentaire désolé mais vous pouvez supprimer le "nécessaire:"

@RenderSection("footer", false) 
+10

J'aime le "requis" étant là; il rend le code immédiatement compréhensible – joshcomley

+11

dans ce cas pourquoi ne pas étiqueter tous les paramètres ......... partout. – Kyle

+0

au début quand j'ai vu cela nécessaire j'ai été confus, parce que ce n'est pas normal de passer le nom du paramètre afin qu'il soit "immédiatement compréhensible". alors pourquoi les gens n'aiment pas les notations hongroises? cela rend tout votre code compréhensible :) – Karim