EDITAR - Estamos utilizando MVC4 Dev Vista preliminar ....¿Revalidar un ViewModel modificado dentro de un método de controlador?
estoy poniendo en práctica una página de edición para una clase FishingTrip
. FishingTrip
contiene una colección secundaria de objetos simples Crew
(es decir, FishingTripID, CrewID, CrewPosition).
Estoy usando Jarrett Meyer's approach para agregar, editar y eliminar de la colección Crew
. Estoy usando una validación discreta para especificar que las propiedades de Crew
son todas Required
.
Mi problema: cuando, lógicamente, elimino un elemento de la lista (según el método de Jarrett), no quiero que ese elemento sea validado.
He modificado correctamente el método "removeRow" en el lado del cliente para desactivar la validación discreta para el elemento eliminado lógicamente, para que el formulario se publique a pesar de que haya un elemento que contenga campos en blanco.
En mi método controlador [HttpPost] Edit
, ModelState.IsValid
comienza como falsa (como era de esperar -. A causa del elemento eliminado lógicamente que contiene campos en blanco) De modo que se elimine este punto de mi modelo de vista .... pero ModelState.IsValid
sigue siendo falsa.
En resumen, yo (creo que) quiero modificar mi ViewModel dentro del método del controlador para eliminar el elemento ofensivo, luego llamar a algún tipo de "revalidar" y hacer que ModelState.IsValid
aparezca como verdadero.
¿Alguna idea?
Posible duplicado de [invocando manualmente la validación ModelState] (http://stackoverflow.com/questions/6360087/manual-invocación-modelo-estado-validación) – KyleMit