Non esiste una regola chiara su come creare e organizzare correttamente i modelli di visualizzazione. La tua domanda è troppo vaga per poter rispondere perché hai fornito troppo poco contesto.
Di solito raggruppo i modelli di visualizzazione in base a blocchi funzionali/parti dello schermo che rappresentano. Quindi, ad esempio, immagina di avere una forma complessa composta da più sezioni/campi come i dettagli di contatto, l'indirizzo di consegna, le informazioni di fatturazione, ecc. Un indirizzo potrebbe essere composto da un menu a discesa street, zip, città e paese. Vorrei creare un modello di visualizzazione indirizzi contenente queste quattro proprietà in modo che possa essere riutilizzato in più viste/viste parziali. Ciò renderà anche più semplice la convalida poiché le proprietà dipendenti saranno raggruppate nello stesso modello di vista, ad esempio per convalidare che il dato zip corrisponde alla città e che la città appartiene al paese selezionato.
Ad esempio, ho una vista di modifica con alcune caselle di testo e un elenco a discesa.
Devo separare l'elenco a discesa in un nuovo modello di visualizzazione o shoud la vista modifica avere uno ViewModel con una lista per la DropDownList?
Direi di no, se quei campi sono in qualche modo funzionalmente correlati.
Conclusione: si dovrà trovare il giusto equilibrio tra avere un modello di vista per campo sullo schermo e avere un modello a vista singola per applicazione.
fonte
2010-09-06 21:22:39
Riguardo alla creazione di submodelli secondari riutilizzabili che hai menzionato - cosa succede se cambi il tuo indirizzo viewmodel perché dovevi modificarlo per una sola vista specifica - la modifica interesserà altre viste che usano l'indirizzo viewmodel anche se hai indentato per cambiare solo una vista ? – BornToCode