2010-06-08 2 views
2

D'abord, il y avait les validateurs ASP.NET et nous les utilisions ... Ensuite, certaines personnes de l'équipe ont fait les choses manuellement en javascript ... Puis un tas de bibliothèques de validation jquery est sorti ... Puis MVC2 est sorti avec des attributs validateurs ..Meilleure façon de faire la validation client/serveur dans ASP.NET en 2010?

Je travaille avec des applications qui ont beaucoup de formes avec beaucoup de validation (Certains champs doivent être comparés avec d'autres valeurs dans une base de données donc un appel postball/ajax est nécessaire) .. En ce moment j'ai un gâchis de validateurs personnalisés ASP.NET et de fonctions qui calculent également côté serveur.

Puis-je obtenir des avis sur le meilleur outil/combinaison pour aborder ce travail qui peut créer le plus petit/code le plus élégant? Solution côté serveur pur? AJAX/Jquery? Un certain plugin pour jquery?

Par exemple, j'ai 2 dates .. Je veux vous assurer que la 1ère est inférieure à ce jour la date 2 ... Y at-il des validateurs jquery qui encapsulent cela? Mon sentiment est que si je peux obtenir des plugins jquery pour gérer la moitié de la validation plus basique pour mon qui pourrait réduire mon code de moitié.

+0

Est-il vrai que les seules annotations de données MVC2 «écrivez une fois et validez sur le serveur ET le client»? Y at-il quelque chose comme ça pour les formulaires Web? – punkouter

+0

ou peut-être pas de validation côté client et juste utiliser les annotations + updatepanel pour le faire ressembler à côté client. – punkouter

Répondre

1

DynamicData pour mvc asp.net et de données dynamiques.

Sur webforms je ne l'ai utilisé l'approche des asp.net validateurs. Cela ne signifie pas copier-coller toutes les validations personnalisées que vous pourriez avoir, c'est-à-dire que vous ajoutez vos propres validateurs personnalisés et que vous utilisez des validateurs supplémentaires accrochés aux méthodes + scripts sur la page.

Selon la façon dont vous structurez votre code, je pense pouvoir tirer parti de certaines des infrastructures autour DataAnnotations. Je ne peux pas le donner pour un fait, vous savez les problèmes habituels sur asp.net quelque chose d'habitude lié aux détails de mise en œuvre, vaut la peine s'il n'y a pas de meilleures options.

Mise à jour 1: une v recherche rapide a donné: http://blogs.microsoft.co.il/blogs/gilf/archive/2010/04/08/building-asp-net-validator-using-data-annotations.aspx, qui est rudimentaire pièce - mais montre une façon que vous pouvez tirer parti des annotations de données sur les formulaires Web (pour le côté serveur)..

Mise à jour 2: autre avec la même approche que ci-dessus, mais fait les deux serveur & validation côté client: http://geeks.ms/blogs/rcarreras/archive/2010/04/20/validando-asp-net-web-form-con-dataannotation-en-ambos-lado-cliente-y-servidor.aspx. Encore rudimentaire, mais peut certainement être utilisé comme base pour obtenir une validation automatique plus complète basée sur les annotations. Note: en fonction de ce que vous utilisez, vous pouvez ajouter automatiquement les validateurs aux emplacements appropriés, bien que je doive vous avertir qu'il peut être difficile de faire fonctionner correctement les validateurs ajoutés avant

+0

Peut-être le moyen le plus simple est d'utiliser les données dataAnnotations côté serveur et jquery côté client? La version côté client des notifications de données semblait assez complexe – punkouter

+0

oui, l'échantillon est assez simple pour être adapté en fonction des bibliothèques dont vous disposez. – eglasius

1

Si vous utilisez ASP.NET MVC, je recommande les attributs DataAnnotations à travers le conseil d'administration. Il y a des "simples" inclus pour les champs obligatoires et la longueur, et vous pouvez écrire vos propres validateurs personnalisés pour la comparaison de deux champs et d'autres. Phil Haack comme un grand article tout sur les validateurs personnalisés dans ASP.NET MVC.

+0

Nous utilisons des formulaires Web (même si j'espère utiliser un jour MVC car si ces validations d'annotations peuvent être effectuées de manière propre, je les préfère) – punkouter

1

J'utilise habituellement le plugin jquery RSV http://plugins.jquery.com/project/RSV pour faire mon travail de validation pour les choses normales, et je code mes propres fonctions jquery pour la validation plus complexe (nécessitant des appels ajax et d'autres choses) et je revalider toujours sur le serveur côté.

+0

merci. cela ressemble à un bon début pour les situations côté client – punkouter

Questions connexes