Tengo una clase viewmodel que contiene un par de propiedades. Básicamente, el registro actual (que el usuario está editando) y una lista de opciones (que se utiliza para completar una lista desplegable usando DropDownListFor).MVC DropDownListFor - ¿Debo volver a llenar manualmente las opciones después de que la validación falla?
Después de enviar el formulario, si el modelo no es válido, vuelvo a la vista. Entiendo que el formulario se rellena con la entrada 'rechazada' del ModelState["name"].Value.AttemptedValue
, pero no estoy seguro de qué hacer con la lista de valores de la lista desplegable.
Si no hago nada, en la validación falla y regreso a la página aparece un error de 'referencia de objeto no establecido en instancia de un objeto' porque la propiedad list del viewmodel es nula. Sé que es nulo porque no estaba vinculado desde la publicación del formulario, por lo que puedo volver a llenarlo desde la base de datos antes de volver a la vista.
¿Es esa la forma correcta de hacerlo, o me falta una forma más obvia de hacer que los valores de la lista desplegable persistan?
Gracias. Esa es prácticamente la técnica que estaba usando. Solo trabajando por mi cuenta en un proyecto que usa una nueva tecnología, ¡es bueno contrastar con una segunda opinión! – Gavin