2010-11-11 9 views
17

Visual Studio oferuje JavaScript Intellisense. Jest wystarczająco sprytny, aby zauważyć, że odwołujesz się do plików JavaScript na swoich stronach wzorcowych (na przykład plik jQuery), a następnie oferuje uzupełnianie oświadczeń w dowolnym widoku aplikacji. Jednak wydaje się, że nie działa to w przypadku Razor. Czy jest jakiś sposób, żeby to działało z Razorem? ASPX widok silnik oferuje ten trick na przykład: <% /* %><script src="~/Scripts/jquery-1.4.1-vsdoc.js"></script><% */ %>Odnosząc się do plików JavaScript w widokach Razor, aby uzyskać JavaScript Intellisense

Odpowiedz

27

Powinieneś być w stanie zrobić coś takiego:

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

ten sposób kod nigdy nie będzie uruchamiany, gdy biegnie aplikacji, ale nie będą wiedzieć, VS o numerze if (false), więc przeanalizuje tag <script> i pozwoli Intellisense wziąć to pod uwagę. Problem z użyciem komentarzy Razor w plikach maszynki brzytwy polega na tym, że VS rozpozna je i całkowicie zignoruje wszystko, co znajduje się wewnątrz nich. Na przykład, to nie będzie działać:

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

nie najczystsze obejścia ale prawdopodobnie najlepiej jak potrafimy na razie. Dzięki! – Konstantin

+0

Powyższa metoda powoduje, że podczas korzystania z właściwości true w pliku csproj powstaje wiele "wykrytych nieosiągalnych kodów". – JJS

8

Aby zapobiec kompilatora ostrzeżenia o martwy kod, można dodatkowo owinąć to z Pragma:

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