ASP.NET MVC 3 Razor: incluya el archivo JavaScript en la etiqueta principal

230

Estoy tratando de averiguar la sintaxis adecuada de Razor para obtener un archivo JavaScript para que un * .cshtml particular esté en la etiqueta principal junto con todos los demás archivos de inclusión que se definen en _Layout.cshtml.

Stephen Patten
fuente
77
También debe considerar poner el js en la parte inferior de la página en lugar de en la sección de encabezado.
Mattias Jakobsson el
El único problema que encontré con el código de muestra es que la sección "JavaScript" no necesita estar entre comillas.
Stephen Patten
2
Una cosa más: si se trata de una etiqueta de JavaScript, tenga cuidado con el uso, necesito usar la etiqueta END del elemento de secuencia de comandos para que funcione correctamente. <script type = "text / javascript" src = "@ Url.Content (" ~ / Scripts / RDA.js ")"> </script>;
Stephen Patten el
@Mattias Jakobsson: no siempre. Eso depende de un caso específico.
Dimskiy
@Dimskiy, si me permites ser un analizador de palabras y pedante, siempre debes CONSIDERAR poner el js en la parte inferior, ya sea que lo coloques allí o no.
MrBoJangles

Respuestas:

398

Puede usar secciones con nombre .

_Layout.cshtml

<head>
    <script type="text/javascript" src="@Url.Content("/Scripts/jquery-1.6.2.min.js")"></script>
    @RenderSection("JavaScript", required: false)
</head>

_SomeView.cshtml

@section JavaScript
{
   <script type="text/javascript" src="@Url.Content("/Scripts/SomeScript.js")"></script>
   <script type="text/javascript" src="@Url.Content("/Scripts/AnotherScript.js")"></script>
}
RPM1984
fuente
1
Sí, estaba mirando WebPageBase y supuse que esa podría ser la respuesta, pero no conocía la sintaxis adecuada. ¿Me puede recomendar una guía de referencia para el MVC 3? Saludos ..
Stephen Patten
8
¡Decir ah! Ojalá hubiera una guía de referencia para MVC 3 y la sintaxis de Razor. Obtuve lo anterior del blog de Gu. La mejor referencia para MVC 3 es probablemente las notas de la versión.
RPM1984
Ah, y un buen consejo es la etiqueta de cierre para la <script>etiqueta: no lo sabía (no he probado las secciones con nombre con JS todavía). ahora yo (y otros) sabré
RPM1984,
44
FYI: Javascript debe mostrarse justo antes de la </body>etiqueta en lugar de en la etiqueta principal. Esto es para que no impida descargas paralelas por parte del navegador. Ver developer.yahoo.com/performance/rules.html
Peter
44
@Peter, sí, lo sé, pero simplemente estaba abordando la respuesta (JS en la etiqueta de la cabeza).
RPM1984