Je construis une application web avec ASP.NET MVC et je suis encore un débutant avec cette technologie.asp.net mvc - presque identiques ViewModels
J'ai appris qu'il est préférable d'avoir un ViewModel pour chaque vue. Je peux comprendre pourquoi c'est une bonne idée. Cependant, dans ma situation, cela semble créer beaucoup de travail supplémentaire.
J'ai un modèle appelé Rule. Il contient un ID, un titre, une description, LastModifiedDate, CreatedDate, entre autres champs.
J'ai une vue Modifier, Créer et Détails pour le modèle de règle. Selon la meilleure pratique, je dois créer un ViewModel pour chacune des vues ci-dessus.
Mais les ViewModels pour les vues ci-dessus sont presque identiques. L'une des seules différences est que le Create-ViewModel n'a pas d'ID, mais que DetailsModels et Modifications le font. A part ça, les ViewModels sont presque identiques. Autrement dit, ils contiennent les mêmes attributs et les mêmes champs de validation DataAnnotation. Pourquoi est-ce que je pense que c'est gênant? Supposons que je souhaite modifier certaines des annotations de données. Par exemple. chaneg une longueur maximale d'un attribut de chaîne. Si je souhaite le faire, je dois le faire à la fois dans le modèle de règle, le Create ViewModel et Edit ViewModel. Et de même si je souhaite ajouter de nouveaux attributs, je dois le faire dans tous les modèles. Est-ce que je le fais bien, ou peut-il être simplifié?
Vous pouvez utiliser le même modèle de vue pour créer, afficher et modifier. – anand
* meilleure pratique pour avoir un ViewModel pour chaque View * non ce n'est pas le cas. C'est utile mais vous n'avez pas ** à le faire. Si cela justifie un modèle de vue, en faire un, ce n'est pas aussi bien. – Liam
Vous pouvez utiliser l'héritage de classe pour réduire la duplication de code. Si vous utilisez le même modèle pour toutes les vues, faites attention à la sur-publication. –