lunes, 4 de julio de 2011

Tip (1) ASP.NET MVC 3 - "Microsoft JScript runtime error: 'jQuery' is undefined"

Uno de los errores que posiblemente puedan encontrar al utilizar ASP.NET MVC 3 y traten de generar  una vista a través del Scaffolding integrado es cuando al tratar de correr su aplicación, el IDE les arroje sin razón aparente un error del tipo:

Microsoft JScript runtime error: 'jQuery' is undefined


Este tipo de errores es un poco difíciles de trabajar debido a que el código fue generado automáticamente por el framework y por ende se asume que no hubo introducción de bugs.
Esto no es tán fácil de aceptar pero he aquí un par de tips que les podrán ayudar a seguir adelante.

Una posible causa del error se debe a que quizas no hayan actualizado el manejador de Paquetes NuGet, de ahí que en 1era instancia la recomendación sea actualizarlo utilizando la secuencia:


Tools/LibraryPackage Manager/Package Manager Settings

Lo anterior, despliega los "settings" del manejador, asegurense que esté encendido el switch de "Update":



También asegurense que cuentan con la última actulización del paquete de jQuery, esto se logra invocando también al manejador de Paquetes Nuget, mediante la secuencia: Tools / Library Package Manager / Manage NuGet Packages...


NuGet les mostrará en la columna de enmedio todos los paquetes instalados, no instalados y los que requieren actualización.
Aquellos que se encuentran instalados se marcan automáticamente en la parte superior derecha de su entrada con un círculo verde que contenie una "palomita", y los que no están instalados no la muestran pero al dar click en alguno se despliega un botón de "Install".
La recomendación es tener instalada la última versión del jQuery (que al momento de esta publicación es la 1.6.2 ) igualmente verifiquen que tengan instalado el paquete Modernizr (que al momento de esta publicación es la 2.0.6).


Al tener instalados ambos paquetes su solución se verá actualizada en el folder de Scripts mostrando los paquetes instalados.



Si lo anterior no resuleve el problema, es posible que se deba a que NuGet NO actualiza automáticamente las referencias en el archivo _Layout.cshtml que se encuentra en la carpeta Views/Shared de su solución.
Si este es el caso, editen este archivo y actualizenlo manualmente para que las referencias apunten a los paquetes que previamente actualizaron y/o instalaron.
La siguiente porción de código en negritas muestra la actualización ya realizada:



Espero que estos tips le sean de utilidad! :)