ASP.NET MVC 3 Razor: Bao gồm tệp JavaScript trong thẻ head


230

Tôi đang cố gắng tìm ra cú pháp Dao cạo phù hợp để có được một tệp JavaScript cho một * .cshtml cụ thể nằm trong thẻ đầu cùng với tất cả các tệp bao gồm khác được xác định trong _Layout.cshtml.


7
Bạn cũng nên xem xét việc đặt js ở cuối trang thay vì trong phần đầu.
Mattias Jakobsson

Vấn đề duy nhất tôi tìm thấy với mã mẫu là @section "JavaScript" không cần được đặt trong dấu ngoặc kép.
Stephen Patten

2
Một điều nữa: nếu đây là thẻ JavaScript, hãy cẩn thận về cách sử dụng, tôi cần sử dụng Thẻ END của thành phần tập lệnh để làm cho thẻ này chạy chính xác. <script type = "text / javascript" src = "@ Url.Content (" ~ / Sc scripts / RDA.js ")"> </ script>;
Stephen Patten

@Mattias Jakobsson - Không phải lúc nào. Điều đó phụ thuộc vào một trường hợp cụ thể.
Dimskiy

@Dimskiy nếu bạn cho phép tôi trở thành một người phân tích cú pháp và người bán hàng, bạn thực sự nên luôn luôn KIỂM TRA đặt js ở phía dưới, cho dù bạn có thực sự đặt nó ở đó hay không.
MrBoJangles

Câu trả lời:


398

Bạn có thể sử dụng Phần được đặt tên .

_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
Có, tôi đã xem WebPageBase và đoán rằng đó có thể là câu trả lời, nhưng không biết cú pháp thích hợp. Bạn có thể giới thiệu một hướng dẫn tham khảo cho MVC 3 không? Trân trọng ..
Stephen Patten

8
Hà! TÔI MUỐN có một hướng dẫn tham khảo cho cả cú pháp MVC 3 và dao cạo. Tôi đã nhận được ở trên từ blog của Gu. Tài liệu tham khảo tốt nhất cho MVC 3 có lẽ là các ghi chú phát hành.
RPM1984

Ồ và mẹo hay là viết thẻ đóng cho <script>thẻ - không biết điều đó (chưa thử các phần được đặt tên với JS). bây giờ tôi (và những người khác) sẽ biết
RPM1984

4
FYI: Javascript phải được hiển thị ngay trước </body>thẻ thay vì trong thẻ head. Điều này là để nó không ngăn chặn tải xuống song song bởi trình duyệt. Xem developer.yahoo.com/performance/rules.html
Peter

4
@Peter - vâng, tôi biết - nhưng tôi chỉ đơn giản là giải quyết câu trả lời (JS trong thẻ đầu).
RPM1984
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.