Personalmente ho la mia convalida in 2 luoghi utilizzando DatiAnnotazioni. Il mio modello non è passato alla mia vista per intero. Dispongo di modelli separati per le mie visualizzazioni e traduco i dati dal modello di visualizzazione nel modello. In questo modo, posso mettere tutto quello che voglio nel mio modello di vista e lasciare fuori i pezzi che non voglio trattare.
Il mio ragionamento, tuttavia, è che ho un'applicazione Windows e un'applicazione Web che utilizza lo stesso modello. In questo modo, lo stesso insieme di regole di convalida governa il Modello per tutte le app, e il mio modello di vista può avere regole leggermente diverse se necessario. Naturalmente, questo crea una "duplicazione della logica" - bene, logica di validazione.
In questo modo non è necessario ricostruire i dati che non sono stati utilizzati nella pagina ogni volta che si torna al server o inseriti in campi nascosti e gonfiare la dimensione delle mie pagine.
grazie per il commento, quindi userò le annotazioni di dati sia per il modello che per il viewmodel? (attributi) – Martin