Je travaille actuellement sur un projet ASP.NET MVC2. C'est la première fois que je travaille sur une vraie application web MVC. Le ASP.NET MVC website m'a vraiment aidé à démarrer très rapidement, mais j'ai encore quelques connaissances obscures concernant la validation du modèle de données. Mon problème est que je ne sais pas vraiment où gérer mon datamodel rempli quand il s'agit de règles de validation complexes. Par exemple, la validation d'un champ de chaîne avec un Regex est assez facile et je sais que je dois juste décorer mon champ avec un attribut spécifique, donc les règles de gestion de données sont implémentées dans le modèle. Mais si j'ai plusieurs champs dont j'ai besoin de valider les uns avec les autres, par exemple plusieurs datetime qui doivent être correctement définis en fonction d'une règle de temps spécifique, où dois-je les valider? Je sais que je pourrais créer mes propres attributs de validation, mais parfois la validation demande un chemin de validation spécifique qui doit être complexe pour être validé en utilisant des attributs.Où mettre des règles de gestion de données pour la validation de données complexes dans ASP.NET MVC?
Cette première question me conduit également à une question connexe qui est, est-il juste de valider un modèle dans le contrôleur? Parce que pour le moment c'est la seule façon que j'ai trouvée pour la validation complexe. Mais je trouve cela un peu sale et je pense qu'il ne correspond pas vraiment au rôle de contrôleur et qu'il est beaucoup plus difficile à tester (chemin de code multiple).
Merci.
NB:. Je suis arrivé assez bonnes solutions ici, mais je suis en attente d'autres idées et une solution « meilleures pratiques » »
je me pose la même question. En essayant d'être aussi "SEC" que possible, que dois-je faire avec des validations simples (requises, format, etc.)? Devrais-je utiliser DataAnnotation pour l'appliquer dans la vue et refaire les mêmes validations (plus les plus complexes) dans ma couche de gestion? –