2010-11-11 11 views
17

Visual Studio ofrece JavaScript Intellisense. Es lo suficientemente inteligente como para ver que se refiere a los archivos de JavaScript en sus páginas maestras (por ejemplo, el archivo jQuery) y luego ofrece la finalización de la declaración en cualquier vista de la aplicación. Sin embargo, esto no parece funcionar con Razor. ¿Hay alguna manera de hacer que esto funcione con Razor? motor de vista ASPX ofrece este truco por ejemplo: <% /* %><script src="~/Scripts/jquery-1.4.1-vsdoc.js"></script><% */ %>Refiriéndose a los archivos de JavaScript en las vistas de Razor para obtener JavaScript Intellisense

Respuesta

27

Usted debe ser capaz de hacer algo como esto:

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

De esta manera el código no se ejecutará cuando se ejecuta la aplicación, pero no sabrá VS sobre el if (false), por lo que analizará la etiqueta <script> y permitirá que Intellisense lo tenga en cuenta. El problema con el uso de los comentarios de Razor en los archivos Razor es que VS los reconocerá e ignorará por completo cualquier cosa que haya dentro de ellos. Por ejemplo, esto no funcionará:

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

No es la solución más limpia, pero probablemente la mejor manera posible tener por ahora. ¡Gracias! – Konstantin

+0

el método anterior da como resultado un montón de "Advertencia de código inalcanzable detectado" cuando se usa la propiedad true en el archivo csproj. – JJS

8

Para evitar las advertencias del compilador acerca de código inalcanzable, se puede envolver aún más esta con un pragma:

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