2011-01-27 45 views
12

Tôi đang theo cách nhận các tệp .js được tham chiếu trong các tệp cshtml 'chủ' của tôi để đi qua các tệp cshtml 'con'.Javascript Intellisense trong các trang con của Razor View Engine

Tôi có một cái gì đó như thế này trong các tập tin tổng thể, vì vậy các tập tin .js luôn được tham chiếu (và thực sự tôi nhận được IntelliSense js trong file master):

if (false) 
{ 
    <script type="text/javascript" src="../scripts/jquery.js"></script> 
} 

Tuy nhiên khi tôi tham khảo các master.cshtml trong trang 'con' như sau:

@{ 
    Layout = "~/Views/Shared/master.cshtml"; 
} 

Tôi không nhận được nội dung javascript intellisense. Tôi thực sự không muốn phải đặt các thẻ tập lệnh ở đầu mỗi trang con, có rất nhiều thẻ tập lệnh và rất nhiều trang con!

Trả lời

1

Tôi cũng hy vọng tìm được giải pháp cho vấn đề này.

Tùy chọn tốt nhất mà tôi thấy là luôn sử dụng tệp js bên ngoài. Tạo một tệp giống như Master.js ở trên cùng sử dụng đường dẫn tham chiếu:

Sau đó, bạn có thể có sự hấp dẫn. Bạn cần phải bao gồm tệp jquery trước tệp bên ngoài mới của mình.

5

Trình chỉnh sửa Dao cạo hiện không thể suy ra tệp tập lệnh nào đang được sử dụng (điều này là do trang bố cục Razor được đặt qua mã và trình chỉnh sửa không thực thi trang xem). Thật không may bạn sẽ phải bao gồm các thẻ script nếu bạn muốn JavaScript IntelliSense làm việc trong các trang xem của bạn.

0

Vì vậy, bạn không mất thời gian để tìm lý do tại sao các trick không hoạt động, đây có thể hữu ích:

Nếu bạn sử dụng một đường dẫn tương đối, điều này dường như chỉ làm việc nếu các điểm đường dẫn đến cùng ứng dụng. Đường dẫn tuyệt đối dường như hoạt động trong mọi trường hợp:

reference path="../../Scripts/jquery-1.4.4.js" 

Các tác phẩm ở trên miễn là tệp tập lệnh được tham chiếu nằm trong cùng một ứng dụng.

reference path="http://localhost/Scripts/jquery-1.4.4.js" 

Ở trên dường như hoạt động trong mọi trường hợp.

Các vấn đề liên quan