2010-12-15 87 views
1

Je cherche un moyen d'utiliser des validateurs ASP.NET personnalisés pour valider les entrées, sans utiliser UpdatePanels, et sans publication complète.Validation ASP.NET en utilisant AJAX sans panneaux de mise à jour

Les validateurs font plusieurs choses - pas seulement la longueur/regex, mais aussi d'autres choses non standard.

Javascript est nécessaire pour nos utilisateurs, donc je n'ai pas à m'inquiéter au sujet des utilisateurs normaux qui ont désactivé javascript.

Je vois plusieurs options, mais aucun sont idéales:

1) suck it up et utiliser UpdatePanels. Je suis dans le groupe "UpdatePanels are evil", donc je préfère ne pas le faire.

2) Sans utiliser les contrôles de validation, validez manuellement les champs en transmettant les valeurs à une méthode statique PageMethod, via jQuery ou tout autre framework AJAX. Cela nécessiterait un codage client et serveur chaque fois que je devais utiliser un validateur. 3) Utilisez la validation jQuery (ou toute autre structure javascript) pour la validation du client, puis, si cela vous convient, ayez des contrôles de validation du code serveur pour la publication complète. Cela nécessiterait que toutes les règles de validation soient écrites en javascript ainsi que C#. Je ne me soucie pas de l'échec de la publication à ce stade, parce que la validation javascript attraperait les vrais utilisateurs qui n'essayaient pas de me dégoûter. Y at-il une alternative pour utiliser de vraies commandes CustomValidator, avec une publication partielle, code C# seulement, pour valider les entrées sans UpdatePanels et sans beaucoup de javascript redondant?

Merci

Répondre

1

j'utiliser un mélange de 2 et 3.

validation côté Prénom Server existera peu importe ...

Je voudrais faire les champs qui nécessitent une logique simple de validation basé sur javascript (nombres, texte, longueur de chaîne, chaîne de certains formats, etc.) sans rappels ajax, puis utiliser des rappels vers le serveur où des règles métier ou des validations plus complexes doivent être effectuées, de sorte que les règles complexes ne sont codées qu'une seule fois.

Si vous deviez choisir entre une réponse très rapide (ou pas de délai ... js seulement), ou des données valides, je m'attendrais à ce que des données valables soient gagnées ... Donc en utilisant 2 et 3 ensemble nous espérons vous donner une réponse plus rapide, mais sans compromettre les données valides.

Ajax callbacks à un gestionnaire générique etc devrait être un peu plus rapide qu'un UpdatePanel de toute façon beaucoup moins que les données seraient transférées ...

+0

Merci pour le conseil. Je vais essayer. Et je suis avec vous sur le problème UpdatePanel sur le transfert de données - c'est une grande raison pour laquelle je ne suis pas un fan. –

1

Honnêtement, je pense que 2 est une bonne option. CustomValidator ou non, vous allez écrire le même code de serveur pour effectuer la validation. Vous pouvez faire tout le code de validation en C#, et écrire simplement JS pour appeler votre méthode de validation, qui peut être un PageMethod ou un ashx séparé. Et vraiment, vous pourriez probablement écrire une fonction JS qui prend des paramètres pour rendre l'appel AJAX assez facilement.

+0

Merci pour l'aide. –