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