Un modello di vista è qualcosa per aggiungere un altro livello di astrazione nel caso in cui non ti fidi completamente del tuo codice di presentazione (o semplicemente trovi questo tipo di incapsulamento più elegante).
vale a dire, se la classe Person
ha un metodo Delete
o una proprietà SSNumber
, si potrebbe desiderare di non passare questo oggetto per una vista, come questo, concettualmente, le consente di chiamare Eliminare o visualizzare lo SSN, che si deve non essere capace di.
Per evitare questa situazione, si crea un'altra classe, PersonViewModel
, che contiene solo informazioni/metodi sicuri da chiamare da una vista.
Questo ha poco a che fare con l'uscita dalla logica del modello di un'applicazione MVC. È possibile creare un progetto separato per il proprio modello e fare riferimento alla propria applicazione Web indipendentemente dal fatto che si utilizzi l'incapsulamento ViewModel. Ciò è incoraggiato dai libri che ho letto finora.