Estoy tratando de comprender la mejor manera de implementar un DropDownList
en ASP.NET MVC 2 utilizando el ayudante DropDownListFor
. Esta es una pregunta de varias partes.¿La mejor manera de implementar DropDownList en ASP.NET MVC 2?
En primer lugar, ¿cuál es la mejor manera de pasar los datos de la lista a la vista?
- pasa una lista en su modelo con una propiedad
SelectList
que contiene los datos - pasa una lista en la vía
ViewData
¿Cómo puedo obtener un valor en blanco en el DropDownList
? ¿Debo compilarlo en el SelectList
cuando lo estoy creando o hay algún otro medio para decirle al ayudante que cree automáticamente un valor vacío?
Por último, si por alguna razón hay un error en el servidor y tengo que volver a mostrar la pantalla con el DropDownList
, ¿debo volver a buscar los valores de la lista para pasar al modelo de vista? Estos datos no se mantienen entre las publicaciones (al menos no cuando lo paso a través de mi modelo de vista), así que iba a buscarlo de nuevo (está en la memoria caché). ¿Estoy haciendo esto correctamente?
El problema con el uso de ViewData es que hace que su controlador sea mucho más difícil de probar. Si mantiene todo en ViewModel, sus pruebas son mucho mejores. – Mac
En realidad, no es para nada diferente: con ViewModel tienes que spelunk ViewData.Model, de lo contrario, solo tienes que pedirlo con una clave. No hay diferencia en absoluto ... –
http://stackoverflow.com/a/5177332/986862 –