2010-11-11 8 views
17

Visual Studio cung cấp JavaScript Intellisense. Đó là đủ thông minh để thấy rằng bạn tham khảo các tập tin JavaScript trong trang chủ của bạn (ví dụ như tập tin jQuery) và sau đó cung cấp hoàn thành tuyên bố trong bất kỳ quan điểm của ứng dụng. Tuy nhiên điều này dường như không hoạt động với Razor. Có cách nào để làm việc này với Razor không? ASPX công cụ xem cung cấp thủ thuật này ví dụ: <% /* %><script src="~/Scripts/jquery-1.4.1-vsdoc.js"></script><% */ %>Đề cập đến các tệp JavaScript trong chế độ xem Dao cạo để lấy JavaScript Intellisense

Trả lời

27

Bạn sẽ có thể làm điều gì đó như thế này:

@if (false) { 
<script src="/Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script> 
} 

Bằng cách đó mã sẽ không bao giờ chạy khi chạy ứng dụng, nhưng VS sẽ không biết về số if (false), do đó, nó sẽ phân tích cú pháp thẻ <script> và cho phép Intellisense tính đến nó. Vấn đề với việc sử dụng các chú thích Razor trong các tệp Razor là VS sẽ nhận ra chúng và hoàn toàn bỏ qua bất kỳ thứ gì bên trong chúng. Ví dụ, điều này sẽ không làm việc:

@* <script src="/Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script> *@ 
+0

Không phải là cách giải quyết sạch nhất, nhưng có lẽ là tốt nhất chúng ta có thể có ngay bây giờ. Cảm ơn! – Konstantin

+0

phương pháp trên dẫn đến nhiều "Cảnh báo không thể truy cập mã được phát hiện" khi sử dụng thuộc tính true trong tệp csproj. – JJS

8

Để ngăn chặn cảnh báo trình biên dịch về mã unreachable, bạn có thể tiếp tục quấn này với một pragma:

@{ #pragma warning disable } 
@if (false) 
{ 
    <script src="/Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script> 
} 
@{ #pragma warning restore }