El problema de la WebGrid con VS2012RC y ASP.NET MVC4

Nota: Este post está basado en la versión RC de VS2012 y la versión RC de MVC4 y es posible (o eso espero, vaya!) que en la versión final no haya los problemas que este post menciona!

Buenas! Coje un VS2102RC y crea un nuevo proyecto ASP.NET MVC4, con la plantilla “Basic”.

Crea el HomeController, crea la acción Index y añádele un código tal como:

   1: public ActionResult Index()

   2: {

   3:     var data = new List<dynamic>() { new { Name = "Edu", Twitter = "eiximenis" } };

   4:     return View(data);

   5: }

Finalmente crea la vista Index.cshtml:

   1: @{

   2:     var grid = new WebGrid(Model, new [] {"Name", "Twitter"});

   3: }

   4: @grid.GetHtml()

Seguro que esperas ver una grid con las dos columnas y una fila no? ¡Pues no! Lo que verás es:

image

Obtendrás el error “CS0246: The type or namespace name ‘WebGrid’ could not be found (are you missing a using directive or an assembly reference?)”.

Si repites este mismo procedimiento pero cojes la plantilla “Empty” el código funcionará sin problemas 🙂

¿Y donde está el problema?

Pues eso me he estado preguntando un buen rato. Por supuesto antes de intentar hacer nada he usado el comodín de Google pero esta vez me ha fallado. La única referencia que he encontrado es un post en los blogs de ASP.NET (http://forums.asp.net/t/1823940.aspx/1?MVC4+WebGrid+problem+in+View+Razor+) donde alguien más experimenta el problema pero no se llega a ninguna solución.

Al final lo que he hecho para solucionar el problema ha sido:

  1. Desde NuGet desinstalar el paquete ASP.NET MVC4 RC 4.0.20505. Eso ha desinstalado también los paquetes Microsoft.AspNet.WebPages 2.0.20505.0 y Microsoft.AspNet.Razor 2.0.20505.0
  2. Volver a instalar el paquete ASP.NET MVC4 RC 4.0.20505 desde NuGet. Me ha dado un error y ha hecho un rollback.
  3. Intentar de nuevo volver a instalar el paquete ASP.NET MVC4 RC 4.0.20505. Ahora todo ha funcionado correctamente.

Después del tercer punto, la WebGrid ya funcionaba correctamente.

Honestamente desconozco la causa, pero bueno… si alguien se encuentra con ello, ya lo sabe. Que pruebe esto a ver si le funciona! 🙂

Un saludo!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *