Qué es @RenderSection en asp.net MVC

¿Cuál es el propósito de @RenderSection y cómo funciona? Entiendo lo que hacen los paquetes, pero todavía tengo que averiguar lo que hace esto y es probablemente importante.

@RenderSection("scripts", required: false)

¿Quizás un pequeño ejemplo de como usarlo?

Solución

Si tiene una vista _Layout.cshtml como ésta



        @RenderBody()
        @RenderSection("scripts", required: false)

entonces puede tener una vista de contenido index.cshtml como esta

@section scripts {
     <script type="text/javascript">alert('hello');</script>
}

el required indica si la vista que utiliza la página de diseño debe o no tener una sección de scripts

Comentarios (0)

Si

(1) tiene una vista _Layout.cshtml como ésta



        @RenderBody()


    <script type="text/javascript" src="~/lib/layout.js"></script>
    @RenderSection("scripts", required: false)

(2) usted tiene Contacts.cshtml

@section Scripts{
    <script type="text/javascript" src="~/lib/contacts.js"></script>

}
<div class="row">
    <div class="col-md-6 col-md-offset-3">
        <h2>    Contacts</h2>
    </div>
</div>

(3) usted tiene About.cshtml

<div class="row">
    <div class="col-md-6 col-md-offset-3">
        <h2>    Contacts</h2>
    </div>
</div>

En su página de diseño, si se requiere se establece en false "@RenderSection("scripts", required: false)", Cuando la página se renderiza y el usuario está en la página acerca de, los contactos.js doesn't render.


        <div>About<div>             

        <script type="text/javascript" src="~/lib/layout.js"></script>

if required is set to true "@RenderSection("scripts", required: true)", Cuando la página se renderiza y el usuario está en la página ABOUT, el contacts.js TODAVIA se renderiza.


    <div>About<div>             

    <script type="text/javascript" src="~/lib/layout.js"></script>
    <script type="text/javascript" src="~/lib/contacts.js"></script>

*En resumen, cuando se establece en true, si usted lo necesita o no en otras páginas, que se presentará de todos modos. Si se establece en false, que se presentará sólo cuando la página de niño se renderiza.

Comentarios (2)

Aquí la definición de Rendersection de MSDN. En páginas de diseño, renderiza el contenido de una sección nombradaMSDN.

En la página _layout.cs poner

@RenderSection("Bottom",false)

Aquí renderiza el contenido de la sección bootom y especifica la propiedad booleana false para especificar si la sección es requerida o no.

@section Bottom{
       This message form bottom.
}

Esto significa que si desea que la sección inferior en todas las páginas, entonces usted debe utilizar falso como el segundo parámetro en el método Rendersection.

Comentarios (0)