Ho una classe viewmodel che contiene un paio di proprietà. In pratica, il record corrente (che l'utente sta modificando) e un elenco di opzioni (che viene utilizzato per compilare un elenco a discesa utilizzando DropDownListFor).MVC DropDownListFor - Devo reinserire manualmente le opzioni dopo il fallimento della convalida?
Dopo aver inviato il modulo, se lo stato del modello non è valido, ritorno alla visualizzazione. Comprendo che il modulo viene compilato utilizzando l'input "rifiutato" da ModelState["name"].Value.AttemptedValue
, ma non sono sicuro di cosa fare sull'elenco di valori per l'elenco a discesa.
Se non faccio nulla, in caso di errore di convalida e ritorno alla pagina, viene visualizzato un errore 'riferimento oggetto non impostato su istanza di un oggetto' perché la proprietà elenco di viewmodel è nullo. So che è nullo perché non è stato rilegato dal post del modulo, quindi posso ripopolarlo dal database prima di tornare alla visualizzazione.
È il modo corretto per farlo, o mi manca un modo più ovvio per mantenere i valori di dropdown persistenti?
Grazie. È praticamente la tecnica che stavo usando. Solo lavorando da solo su un progetto che utilizza una nuova tecnologia, è bene controllare un secondo parere! – Gavin