sábado, 15 de enero de 2011

ASP.NET MVC. Error en Helper DropdownList.

Que alguien me cuente porqué cada vez que cambio de lenguaje tengo que pasar por el terrible proceso de hacer un glosario de lo que quiere decir la descripción críptica de los errores:

The ViewData item that has the key  is of type 'System.Int32' but must be of type 'IEnumerable<SelectListItem>'

Manda cojones, esto quiere decir que en el controlador no he declarado un ViewData que devuelva un ListItem para rellenar el dropdown de la vista.

            <div class="editor-field">
@Html.DropDownListFor(model => model.idClub, ViewData["Clubs"] as SelectList)
</div>



public ActionResult Edit(int id)
{
Arqueros nuevoArquero = ArquerosModel.GetArquerobById(id);

if (nuevoArquero == null)
{ return View("NotFound"); }
else
{
//Este ViewData, si no lo pones, da el precioso error de arriba.
ViewData["Clubs"] = new SelectList(ClubsModel.GetListaClubs(), "idClub", "nombre");
return View(nuevoArquero);
}
}



Ale, supongo que de este tipo de entradas voy a ir metiendo unas cuantas.

6 comentarios:

Julípides dijo...

Volviendo al asunto del test vacío y aprovechando este otro posy, creo que es buena idea resaltar que, independientemente de la arquitectura, lenguaje y diseño técnico elegidos, hay que intentar siempre que haya el mayor grado posible de "desacoplamiento" entre los elementos visuales y el código. En definitiva, que deben ser las clases quienes controlen (y actuén en consecuencia) que haya objetos vacíos.

Javi dijo...

Gracias Gracias Gracias!!!
Casi me vuelvo loco, al hacer el post del formulario me decía esto, pero si entraba por primera vez no.
Muchas gracias otra vez!

Juan Quijano dijo...

Me alegro que te haya ayudado

Ana dijo...

Gracias! Gracias y milgracias!
Llevo como día y medio intentado solventar este error y mirando por internet... me estaba volviendo loca y de repente encuentro tu post de hace ya 4 años, hago lo que pones y zas! Funciona! Me voy a guardar tu blogger como favorito.
Gracias de nuevo!

Juan Quijano dijo...

Me alegro, Ana, que te haya sido de utilidad.
Solo comentarte que ahora me he mudado a wordpress.

https://1poquitodtodo.wordpress.com/

Ana dijo...

Pues allá que voy a seguirte :D