2011-03-02 28 views
15

Estoy usando Visual Studio 2010/ASP.net MVC 3 con el Razor View Engine. Creé un nuevo proyecto con la plantilla de la aplicación de Internet. ¿Qué debo hacer para que Intellisense funcione?ASP.net MVC 3 Razor - jQuery Intellisense

+0

¿No está funcionando en este momento? Tal vez intente reinstalar ASP.NET MVC 3. –

+0

No lo es. Lo acabo de instalar hace unos días. :( – Dismissile

+0

Tal vez abrir un error en el sitio de Microsoft Connect. Veo que mucha gente se queja de esto. Dicho esto, nunca he tenido problemas con él :-) No es que me preocupe demasiado por Intellisense, pero podría ser útil en veces. –

Respuesta

31

Si eso es jQuery específico como el título especifica, tratando de añadir la línea de la etiqueta en el archivo Views/Shared/_layout.cshtml (o .vbhtml):

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

Esto hará referencia al archivo intelisense a VisualStudio y todavía no hacer referencia a ella en tiempo de ejecución

Recuerde, señale el archivo vsdoc con relación al archivo en el que coloca este código. Cualquier código como ~/Url.Content() o cualquier otro código de tiempo de ejecución no será visible para VS para intellisense.
Es exactamente por eso que if (false) oculta la referencia del script del tiempo de ejecución (el bloque if no se ejecuta), pero no lo oculta de VS intellisense (y proporcione otra referencia usando Url.Content() o más al archivo .min.js).

+0

Desafortunadamente, eso no funcionó. Podría ser necesario volver a instalar VS2010 o algo así. – Dismissile

+0

¿Tiene instalado Resharper? Si es así, ¿qué versión? y ¿Cambiar alguna opción de intellisene en la configuración de R # a Visual Studio cambia algo? – Meligy

+0

Eso funciona para mí :) – dariol

4

encontré buena explicación que trabajó para mí en: http://theycallmemrjames.blogspot.com/2011/03/jquery-intellisense-with-aspnet-mvc-and.html

Estas líneas:

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

debe ser añadido a todas las vistas (donde se necesita intelisense). Esto habilitará intellisense pero no agregará la segunda referencia en tiempo de ejecución.

+5

He descubierto que intellisense no funciona cuando utiliza Url.Content ("~/Scripts/jquery-1.4.4.min.js") en las referencias de su secuencia de comandos. Aparentemente no puede determinar la ruta hasta que corras. También parece necesitar hacer esto en cada página que desee Intellisense, no solo agregarla al diseño/master. – Dismissile

+6

Wow, básicamente, el intellisense es completamente inútil a menos que ocupe TODAS las vistas con bloques inútiles para CADA referencia javascript que desee intellisense. Realmente decepcionado en Visual Studio en este momento. –

+0

@John Bubriski ver mi ans a continuación. – MemeDeveloper

9

De http://blog.meidianto.com/2010/05/13/vs2010-tips-7-how-to-make-jquery-intellisense-work-for-external-javascript-file/

Arrastre el archivo de jQuery en el js archivo que desea INTELLISENSE de la siguiente manera: enter image description here

entonces todo funcionará así: enter image description here

+1

La pregunta es sobre archivos Razor (.cshtml, .vbthml) no archivos JavaScript. La sintaxis '' funciona cuando necesita automcompletar desde un archivo JavaScript en otro archivo JavaScript (.js). – Meligy

+0

También estoy enfrentando el mismo problema, Intenté su referencia de arrastrar y soltar. Ahora está funcionando, pero de esta manera tengo que arrastrar y soltar el archivo jquery * .js en todas mis vistas. ¿Hay alguna manera de hacer referencia en la vista de diseño y aparecerá automáticamente en todas las vistas –

2

Parece para mí en Vs2012 con a _layout.cshtml que la solución de @Mohamed Meligy no ayuda en las vistas que utilizan ese archivo de diseño. Tal vez me estoy perdiendo algo?

Sin embargo - el enfoque solution here cuales parece ser recomendado parece que funciona un convite y ahora tengo IntelliSense para todas las referencias a todos los archivos que agrego referencias en _references.js y no necesitan el tiempo de ejecución poco truco falsa y puede mantener las vistas totalmente libres de referencias.