ASP.NET MVC 3 Razor: Sertakan file JavaScript di tag kepala

230

Saya mencoba mencari tahu sintaks Razor yang tepat untuk mendapatkan file JavaScript untuk * .cshtml tertentu berada di tag kepala bersama dengan semua yang lain termasuk file yang didefinisikan dalam _Layout.cshtml.

Stephen Patten
sumber
7
Anda juga harus mempertimbangkan untuk meletakkan js di bagian bawah halaman daripada di bagian kepala.
Mattias Jakobsson
Satu-satunya masalah yang saya temukan dengan kode sampel adalah bahwa bagian "JavaScript" tidak perlu dilampirkan dalam tanda kutip.
Stephen Patten
2
Satu hal lagi: jika ini adalah tag JavaScript, berhati-hatilah dengan penggunaannya, saya harus menggunakan Tag AKHIR elemen skrip untuk menjalankannya dengan benar. <script type = "text / javascript" src = "@ Url.Content (" ~ / Scripts / RDA.js ")"> </script>;
Stephen Patten
@Mattias Jakobsson - Tidak selalu. Itu tergantung pada kasus tertentu.
Dimskiy
@ Dimskiy jika Anda mengizinkan saya menjadi pengurai kata dan pedant, Anda memang harus selalu MEMPERTIMBANGKAN menempatkan js di bagian bawah, apakah Anda benar-benar meletakkannya di sana atau tidak.
MrBoJangles

Jawaban:

398

Anda dapat menggunakan Bagian Bernama .

_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
sumber
1
Ya, saya melihat WebPageBase dan menduga itu mungkin jawabannya, tetapi tidak tahu persis sintaksis yang tepat. Bisakah Anda merekomendasikan panduan referensi untuk MVC 3? Salam ..
Stephen Patten
8
Ha! SAYA INGIN ada panduan referensi untuk sintaks MVC 3 dan Razor. Saya mendapatkan di atas dari blog Gu. Referensi terbaik untuk MVC 3 mungkin adalah catatan rilis.
RPM1984
Oh dan tip bagus buat tag penutup untuk <script>tag - tidak tahu itu (belum mencoba bagian bernama dengan JS). sekarang saya (dan yang lain) akan tahu
RPM1984
4
FYI: Javascript harus dirender tepat sebelum </body>tag, bukan di tag kepala. Ini agar tidak mencegah unduhan paralel oleh browser. Lihat developer.yahoo.com/performance/rules.html
Peter
4
@ Peter - ya, saya tahu - tetapi saya hanya menjawab jawabannya (JS in head tag).
RPM1984