working style section scripts script not net mvc asp asp.net-mvc

asp.net-mvc - style - section scripts razor



¿Qué es @RenderSection en asp.net MVC? (3)

Aquí la definición de Rendersection de MSDN

En las páginas de diseño, representa el contenido de una sección con nombre. MSDN

En la página _layout.cs puso

@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 obligatoria o no.

@section Bottom{ This message form bottom. }

Eso significa que si quieres la sección inferior en todas las páginas, entonces debes usar falso como el segundo parámetro en el método Rendersection.

¿Cuál es el propósito y cómo funciona? Entiendo lo que hacen los paquetes, pero todavía tengo que descubrir qué hace y probablemente sea importante.

@RenderSection("scripts", required: false)

tal vez un pequeño ejemplo sobre cómo usarlo?


Si

(1) tiene una vista _Layout.cshtml como esta

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

(2) 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) tienes 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 es necesario, se establece en falso "@RenderSection (" scripts ", requerido: falso)", cuando la página representa y el usuario está en la página, el contacts.js no se procesa.

<html> <body><div>About<div> </body> <script type="text/javascript" src="~/lib/layout.js"></script> </html>

si es necesario, se establece en verdadero "@RenderSection (" scripts ", obligatorio: verdadero)", cuando la página representa y el usuario está en la página ABOUT, los contacts.js STILL se procesan.

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

EN CORTO, cuando se establece en verdadero , ya sea que lo necesite o no en otras páginas, se procesará de todos modos. Si se establece en falso , se procesará solo cuando se represente la página secundaria.


Si tiene una vista _Layout.cshtml como esta

<html> <body> @RenderBody() @RenderSection("scripts", required: false) </body> </html>

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

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

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