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.

Stephen Patten
la source
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>
}
RPM1984
la source
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