EDIT - Stiamo utilizzando MVC4 Dev Preview ....Riconfigurazione di un ViewModel modificato con un metodo di controllo?
sto implementando una pagina di modifica per una classe FishingTrip
. FishingTrip
contiene una raccolta secondaria di oggetti semplici Crew
(ad esempio FishingTripID, CrewID, CrewPosition).
Sto usando Jarrett Meyer's approach per aggiungere, modificare ed eliminare dalla raccolta Crew
. Sto utilizzando la convalida non invadente per specificare che le proprietà di Crew
sono tutte Required
.
Il mio problema: quando cancello logicamente un elemento dall'elenco (come da metodo di Jarrett), non voglio che quell'elemento sia convalidato.
Ho modificato con successo il metodo "removeRow" sul lato client per disabilitare la convalida non invadente per l'elemento logicamente eliminato, in modo che il modulo verrà pubblicato nonostante ci sia un elemento che contiene campi vuoti.
Nel mio metodo di controllo [HttpPost] Edit
, ModelState.IsValid
inizia come falsa (come previsto -. A causa della voce logico-eliminato che contiene i campi vuoti) Quindi mi toglie che l'articolo dal mio ViewModel .... ma ModelState.IsValid
è ancora falso.
In sintesi, I (penso che) desideri modificare il mio ViewModel all'interno del metodo controller per rimuovere l'elemento offendente, quindi chiamare una sorta di "riconvalida" e avere ModelState.IsValid
visualizzato come true.
Qualche idea?
Eventuali duplicati di [invocare manualmente convalida ModelState] (http://stackoverflow.com/questions/6360087/manual-invoking-modelstate-validation) – KyleMit