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.


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>
}

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.