ASP.NET MVC 3 Razor: Fügen Sie eine JavaScript-Datei in das Head-Tag ein

230

Ich versuche, die richtige Razor-Syntax herauszufinden, um eine JavaScript-Datei für eine bestimmte * .cshtml im head-Tag zusammen mit allen anderen Include-Dateien zu erhalten, die in _Layout.cshtml definiert sind.

Stephen Patten
quelle
7
Sie sollten auch in Betracht ziehen, das js am unteren Rand der Seite anstatt im Kopfbereich zu platzieren.
Mattias Jakobsson
Das einzige Problem, das ich mit dem Beispielcode festgestellt habe, ist, dass der @ Abschnitt "JavaScript" nicht in Anführungszeichen gesetzt werden muss.
Stephen Patten
2
Noch etwas: Wenn es sich um ein JavaScript-Tag handelt, achten Sie auf die Verwendung. Ich musste das END-Tag des Skriptelements verwenden, damit es ordnungsgemäß ausgeführt wird. <script type = "text / javascript" src = "@ Url.Content (" ~ / Scripts / RDA.js ")"> </ script>;
Stephen Patten
@ Mattias Jakobsson - Nicht immer. Das hängt von einem bestimmten Fall ab.
Dimskiy
@Dimskiy, wenn Sie mir erlauben, ein Wortparser und Pedant zu sein, sollten Sie in der Tat immer daran denken, das js nach unten zu setzen, ob Sie es tatsächlich dort platzieren oder nicht.
MrBoJangles

Antworten:

398

Sie können benannte Abschnitte verwenden .

_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
quelle
1
Ja, ich habe mir WebPageBase angesehen und vermutet, dass dies die Antwort sein könnte, kannte aber die richtige Syntax nicht genau. Können Sie eine Referenzanleitung für die MVC 3 empfehlen? Grüße ..
Stephen Patten
8
Ha! Ich wünschte, es gäbe eine Referenz zur MVC 3- und Razor-Syntax. Ich habe das oben genannte aus dem Blog des Gu bekommen. Die beste Referenz für MVC 3 sind wahrscheinlich die Versionshinweise.
RPM1984
Oh und guter Tipp für das Close-Tag für das <script>Tag - wusste das nicht (habe noch keine benannten Abschnitte mit JS ausprobiert). Jetzt werde ich (und andere) wissen
RPM1984
4
Zu Ihrer Information: Javascript sollte direkt vor dem </body>Tag und nicht im Head-Tag gerendert werden . Dies dient dazu, parallele Downloads durch den Browser nicht zu verhindern. Siehe developer.yahoo.com/performance/rules.html
Peter
4
@ Peter - ja, ich weiß - aber ich habe einfach die Antwort angesprochen (JS im Head-Tag).
RPM1984