2010-11-12 15 views
54

Puedo usar ContentPlaceHolder con motores de vista de Webforms para colocar cosas en diferentes ubicaciones en la página maestra.ContentPlaceHolder en Razor?

¿Cómo hago eso con 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

respuesta por @jgauffin es lo suficientemente bueno, pero a continuación también hay una publicación bien escrita de Scott Gu que explica en detalle cómo funcionan las secciones http://weblogs.asp.net/scottgu/archive /2010/12/30/asp-net-mvc-3-layouts-and-sections-with-razor.aspx – N30

Respuesta

89

Una vez más me las arreglé para preguntar antes de encontrar las palabras clave de búsqueda correcta en Google.

En la disposición

@RenderSection("footer", required: false) 

Ver ejemplo

<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 en MVC 3 RC el parámetro para 'RenderSection' cambió de' opcional' a 'required' (y su significado invertido, por supuesto). Entonces, se vería así: @RenderSection ("footer", requerido: falso) (Edité la respuesta para reflejar esto) – Eilon

+0

exactamente lo que estaba buscando. gracias por esta pregunta y respuesta :) – Jason

+0

¿por qué le damos a la sección de render como falsa? – Duk

10

No se pudo dejar un comentario Lo sentimos pero se puede quitar el "requerido:"

@RenderSection("footer", false) 
+10

Me gusta que el "requerido" esté allí; hace que el código sea comprensible al instante – joshcomley

+11

en ese caso, ¿por qué no etiquetar todos los parámetros ......... en todas partes? – Kyle

+0

al principio cuando vi esto requerido estaba confundido, porque bien no es normal pasar el nombre del parámetro para que sea "comprensible al instante". entonces, ¿por qué a la gente no le gustan las anotaciones húngaras? hace que todo tu código sea comprensible :) – Karim