ASP.NET MVC 3 Razor: รวมไฟล์ JavaScript ไว้ในแท็กส่วนหัว


230

ฉันกำลังพยายามหาไวยากรณ์ของมีดโกนที่เหมาะสมเพื่อรับไฟล์ JavaScript สำหรับ * .cshtml ที่เฉพาะเจาะจงให้อยู่ในแท็กส่วนหัวพร้อมกับไฟล์อื่น ๆ ทั้งหมดที่กำหนดไว้ใน _Layout.cshtml


7
คุณควรพิจารณาใส่ js ที่ด้านล่างของหน้าแทนที่จะใส่ไว้ในส่วนหัว
Mattias Jakobsson

ปัญหาเดียวที่ฉันพบกับโค้ดตัวอย่างคือ @section "JavaScript" ไม่จำเป็นต้องอยู่ในเครื่องหมายคำพูด
Stephen Patten

2
อีกอย่างหนึ่ง: ถ้านี่คือแท็ก JavaScript ระวังเกี่ยวกับการใช้ฉันต้องใช้แท็ก END ขององค์ประกอบสคริปต์เพื่อให้มันทำงานได้อย่างถูกต้อง <script type = "text / javascript" src = "@ Url.Content (" ~ / Scripts / RDA.js ")"> </script>;
Stephen Patten

@Mattias Jakobsson - ไม่เสมอไป ขึ้นอยู่กับกรณีที่เฉพาะเจาะจง
Dimskiy

@Dimskiy ถ้าคุณให้ฉันเป็น parser คำและคนอวดรู้คุณควรพิจารณาวาง js ที่ด้านล่างเสมอไม่ว่าคุณจะวางไว้ที่นั่นจริงหรือไม่
MrBoJangles

คำตอบ:


398

คุณสามารถใช้ส่วนชื่อ

_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
ใช่ฉันกำลังดู WebPageBase และเดาว่านั่นอาจเป็นคำตอบ แต่ไม่รู้จักไวยากรณ์ที่เหมาะสม คุณสามารถแนะนำคู่มืออ้างอิงสำหรับ MVC 3 ได้หรือไม่? ขอแสดงความนับถือ ..
Stephen Patten

8
ฮา! ฉันต้องการมีคู่มืออ้างอิงทั้งไวยากรณ์ MVC 3 และมีดโกน ฉันได้ข้อมูลข้างต้นจากบล็อกของ Gu การอ้างอิงที่ดีที่สุดสำหรับ MVC 3 น่าจะเป็นบันทึกประจำรุ่น
RPM1984

โอ้และคำแนะนำที่ดีก็คือแท็กปิดสำหรับ<script>แท็ก - ไม่รู้ว่า (ยังไม่ได้ลองส่วนที่มีชื่อด้วย JS) ตอนนี้ฉัน (และคนอื่น ๆ ) จะได้รู้
RPM1984

4
FYI: ควรแสดงผล Javascript ก่อน</body>แท็กแทนที่จะเป็นแท็กส่วนหัว นี่คือเพื่อป้องกันการดาวน์โหลดแบบขนานโดยเบราว์เซอร์ ดูdeveloper.yahoo.com/performance/rules.html
Peter

4
@Peter - ใช่ฉันรู้ - แต่ฉันก็แค่ตอบคำตอบ (JS ในแท็กหัว)
RPM1984
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.