Rasoir ASP.NET MVC 3: inclure le fichier JavaScript dans la balise head


230

J'essaie de comprendre la syntaxe appropriée de Razor pour obtenir un fichier JavaScript pour un * .cshtml particulier pour qu'il soit dans la balise head avec tous les autres fichiers d'inclusion définis dans _Layout.cshtml.


7
Vous devriez également envisager de mettre les js en bas de la page plutôt que dans la section head.
Mattias Jakobsson

Le seul problème que j'ai trouvé avec l'exemple de code est que la @section "JavaScript" n'a pas besoin d'être placée entre guillemets.
Stephen Patten

2
Encore une chose: s'il s'agit d'une balise JavaScript, faites attention à son utilisation, j'avais besoin d'utiliser la balise END de l'élément de script pour que cela fonctionne correctement. <script type = "text / javascript" src = "@ Url.Content (" ~ / Scripts / RDA.js ")"> </script>;
Stephen Patten du

@Mattias Jakobsson - Pas toujours. Cela dépend d'un cas spécifique.
Dimskiy

@Dimskiy si vous me permettez d'être un analyseur de mots et un pédant, vous devriez en effet toujours envisager de placer le js en bas, que vous le placiez réellement là ou non.
MrBoJangles

Réponses:


398

Vous pouvez utiliser des sections nommées .

_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
Oui, je regardais WebPageBase et j'avais deviné que cela pourrait être la réponse, mais je ne connaissais pas vraiment la syntaxe appropriée. Pouvez-vous recommander un guide de référence pour le MVC 3? Cordialement ..
Stephen Patten

8
Ha! Je souhaite qu'il y ait un guide de référence à la fois pour MVC 3 et pour la syntaxe Razor. J'ai obtenu ce qui précède sur le blog de Gu. La meilleure référence pour MVC 3 est probablement les notes de version.
RPM1984

Oh et bonne astuce par rapport à la balise close pour la <script>balise - je ne le savais pas (je n'ai pas encore essayé les sections nommées avec JS). maintenant je (et d'autres) saurai
RPM1984

4
FYI: Javascript devrait être rendu juste avant la </body>balise au lieu de dans la balise head. C'est ainsi qu'il n'empêchera pas les téléchargements parallèles par le navigateur. Voir developer.yahoo.com/performance/rules.html
Peter

4
@Peter - oui, je sais - mais je m'adressais simplement à la réponse (JS dans la balise head).
RPM1984
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.