Utilizzando ViewModel in ASP.NET MVC con FluentValidation
-
26-09-2019 - |
Domanda
Sto usando ASP.NET MVC con le classi Entity Framework POCO e il quadro FluentValidation. Si sta lavorando bene, e la validazione avviene come dovrebbe (come se stessi usando DataAnnotations). Ho anche ottenuto di lavoro convalida lato client. E sono abbastanza soddisfatto.
Poiché si tratta di un'applicazione di test scrivo solo per vedere se posso ottenere nuove tecnologie che lavorano insieme (e imparare lungo la strada), sono ora pronti a sperimentare con l'utilizzo di ViewModels invece di passare l'attuale modello per la Visualizza. Sto pensando di usare qualcosa come automapper nel mio servizio a fare la parte posteriore mappatura e indietro da modello a ViewModel ma ho una domanda in primo luogo.
Come è questa intenzione di influenzare la mia convalida? Qualora le mie classi di validazione (scritto usando FluentValidation) essere scritti contro il ViewModel al posto del modello? O ha bisogno di accadere in entrambi i luoghi? Uno dei grandi offerte su DataAnnotations (e FluentValidation) era che si potrebbe avere la convalida in un unico luogo che funzionerebbe "ovunque". E si compie la promessa (per lo più), ma se comincio usando ViewModels, non mi perdere quella capacità e dover tornare a mettere la convalida in due posti?
o sono io solo a pensarci sbagliato?
Soluzione
o sono io solo a pensarci sbagliato?
Probabilmente;)
Se si aggiunge tutto il codice di convalida per i tuoi ViewModels devi solo essere li convalidando invece dei vostri modelli attuali. Tutti i vostri davvero cambiando è che gli oggetti possono entrare in uno stato non valido.
In questo momento sono felice come torta solo convalidare ViewModels e poi passaggio che di nuovo le informazioni ai modelli attuali e strati DAO. O se non il dominio può entrare uno stato non valido è un argomento controverso se, ma finora questa tecnica sta lavorando molto per me. Validazione in un posto e nessun oggetto non validi nel mio deposito persistenza.