2010-12-10 18 views
5

J'utilise ASP.NET MVC3 avec jQuery Validate + le support de validation discret fourni avec MVC3. Fonctionne très bien pour presque tout, mais j'ai une vue où il y a une validation à l'échelle de la vue que je dois faire et je ne sais pas comment exploiter les événements de validation qui se produisent dans MVC3 + Valider + discret. La validation réelle ne prendra que quelques lignes de code. Je ne sais pas où brancher ce code. Je souhaite m'attacher au flux de validation existant de sorte que lorsque la validation standard trouve des erreurs dans des champs individuels et ajoute des messages d'avertissement, mon message d'erreur à l'échelle du formulaire apparaîtra également dans le résumé de validation.Validation côté client au niveau du modèle ou du formulaire avec ASP.NET MVC3

P.S. Je suis clair comment ajouter la validation au niveau du modèle appropriée du côté du serveur (Scott juste blogged à ce sujet), mais je pense qu'il serait étrange si une validation s'est produite sur le client et d'autres seulement sur le serveur. Un utilisateur peut voir les erreurs de validation du client, les corriger, puis essayer de soumettre le formulaire et seulement ensuite recevoir le message d'erreur de validation au niveau du modèle.

Répondre

-2

Vous devez TOUJOURS valider à nouveau sur le serveur. C'est vraiment facile de contourner la validation javascript.

Règle n ° 1 du développement Web: Ne faites jamais confiance ENTREES UTILISATEUR

+7

Bien que votre réponse est un bon conseil, il n'a pas vraiment rien à voir avec la question. Il se demande comment ajouter une validation personnalisée sur l'ensemble du modèle (ne demandant pas comment faire une validation en javascript uniquement). – jessegavin

+0

Je sais. Je réponds à cette ligne: "mais je pense que ce serait étrange si une validation se produisait sur le client et d'autres seulement sur le service". Son effrayant à lire. – jfar

+2

Bien sûr, il sera re-validé sur le serveur. Cela ne rend pas la validation du client inutile. Ce que ma déclaration signifiait, c'est que c'est une expérience utilisateur étrange si certains de vos champs sont validés à la fois sur le client et le serveur et que d'autres sont validés sur le serveur uniquement. Les utilisateurs voient la liste des erreurs qu'ils doivent corriger à partir de la validation du client et pensent qu'ils ont été corrigés. Ils reçoivent ensuite des erreurs supplémentaires du serveur lors de leur soumission. –

1

Je dirais que ce que vous recherchez est le nouveau support pour la validation à distance dans Asp MVC3. Voici un article décrivant un scénario commun, j'espère que vous pourrez l'étendre vous-même. Sinon, il y a probablement d'autres articles autour de l'expliquer encore mieux ;-)

http://www.aaronstannard.com/post/2010/12/07/remote-validation-asp-net-mvc3.aspx

/Victor

+0

La validation à distance pourrait fonctionner, mais j'ai besoin des valeurs de plusieurs champs (qui interagissent) afin de faire la logique de validation. –

+0

Bien sûr, mais cela ne devrait pas vraiment être un problème, devrait-il? Regardez le PasswordsMustMatchAttribute ici par exemple: http://forums.asp.net/p/1625928/4189265.aspx - Lorsqu'il est appliqué à la classe (viewmodel), vous pouvez vérifier toutes les propriétés de cette classe. – Victor