Question

Où VALIDATION résider lors de l'utilisation ViewModels avec MVC (MVVM), sur le modèle ou le ViewModel? (Ou les deux ou aucun des deux)? Et pourquoi? Je soulève cette question en particulier à la lumière de V2 de ASP.NET MVC qui sort bientôt.

Qu'en est-validation complexe / custom?

Était-ce utile?

La solution

Toute entreprise validation spécifique devrait être dans le modèle. Tout site Web validation spécifique pourrait être fait à la fois le modèle et / ou ViewModel. De cette façon, votre logique métier (modèles) peut se déplacer derrière une interface différente (Windows, Web Forms, etc.) et votre validation restera intacte.

Autres conseils

Je dirais qu'il est souvent nécessaire de valider à tous les niveaux:)

Je pensais pendant un certain temps au sujet suivant:

  1. la validation des entrées utilisateur: sans aucun doute sur le contrôleur, pas sur tout type de modèle. Exemple:. Captcha
  2. Voir les données relatives validées sur le ViewModel (pas dans le ViewModel, mais le ViewModel). Exemples:. Confirmation mot de passe , Courriel Obligatoire
  3. Les règles de gestion de validation va certainement dans la validation du modèle. Exemples:. Courriel Obligatoire , coupon rabais doit être valide
  4. potentiellement de cas d'utilisation (histoire, scénario, etc.) la validation. Il ne valide pas les attributs, mais valide l'exactitude du processus. Devrait aller à la validation du modèle (ou mieux dans une couche séparée). Exemple: Seulement 3 articles peuvent être obtenus gratuitement pendant une semaine si aucun ordre n'a été mis pour la période donnée .

NOTE: J'inclus E-mail requis à la fois 2 et 3 comme cela dépend souvent là où il appartient
. Si le courriel ne joue le rôle d'information - puis la validation peut être détendue et le pousser à la vue modèle. Si Email est une exigence forte pour l'application - il est certainement la validation des modèles.

La 4ème chose n'a en fait rien à voir avec la validation que nous le comprenons.
Mais il faut aussi appliquer. Ainsi, le résultat doit être affiché à l'utilisateur.

Fondamentalement, les 4 types de validation peuvent utiliser la même infrastructure. Mais la mise en œuvre dépend:) ...

Cheers,
Dmitriy.

Modèle. Votre validation doit être dans votre couche d'affaires. Votre modèle de vue devrait être juste pour obtenir la configuration de votre vue.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top