Rasoio ASP.NET MVC 3: includere il file JavaScript nel tag head


230

Sto cercando di capire la sintassi Razor corretta per ottenere un file JavaScript per un particolare * .cshtml da inserire nel tag head insieme a tutti gli altri file include definiti in _Layout.cshtml.


7
Dovresti anche considerare di mettere js in fondo alla pagina invece che nella sezione head.
Mattias Jakobsson,

L'unico problema che ho riscontrato con il codice di esempio è che la sezione @ JavaScript "non deve essere racchiusa tra virgolette.
Stephen Patten,

2
Ancora una cosa: se si tratta di un tag JavaScript, fare attenzione all'utilizzo, ho dovuto usare il tag END dell'elemento script per farlo funzionare correttamente. <script type = "text / javascript" src = "@ Url.Content (" ~ / Scripts / RDA.js ")"> </script>;
Stephen Patten,

@Mattias Jakobsson - Non sempre. Dipende da un caso specifico.
Dimskiy,

@Dimskiy se mi permetti di essere un parser di parole e un pedante, dovresti davvero CONSIDERARE sempre di mettere js in fondo, indipendentemente dal fatto che tu lo posizioni o meno.
MrBoJangles,

Risposte:


398

Puoi usare Sezioni nominate .

_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ì, stavo guardando WebPageBase e avevo immaginato che quella potesse essere la risposta, ma non conoscevo bene la sintassi corretta. Potete raccomandare una guida di riferimento per MVC 3? Saluti ..
Stephen Patten,

8
Ha! DESIDERO che ci fosse una guida di riferimento alla sintassi di MVC 3 e Razor. Ho ottenuto quanto sopra dal blog di Gu. Il miglior riferimento per MVC 3 è probabilmente le note di rilascio.
RPM1984,

Oh, e un buon consiglio ha scritto il tag di chiusura per il <script>tag - non lo sapevo (non ho ancora provato le sezioni con nome con JS). ora io (e altri) lo sapremo
RPM1984

4
Cordiali saluti: Javascript dovrebbe essere reso subito prima del </body>tag anziché nel tag head. Questo in modo da non impedire download paralleli da parte del browser. Vedi developer.yahoo.com/performance/rules.html
Peter,

4
@Peter - sì, lo so - ma stavo semplicemente affrontando la risposta (JS nel tag head).
RPM1984,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.