2010-01-04 5 views
6

J'ai un formulaire Web ASP.NET que je veux valider côté client et côté serveur, en utilisant les mêmes contrôles de validation. Je n'arrive pas à trouver la solution pour cela - la validation du client fonctionne très bien, mais quand je désactive javascript - Elle ignore la validation.côté serveur de validation ASP.NET

L'aide serait grandement appréciée.

Roman

+0

pouvez-vous nous donner plus d'informations? Plus précisément, quels contrôles de validation utilisez-vous? Les validateurs ASP.NET intégrés? Si oui, lesquels utilisez-vous (par exemple CustomValidator)? Quelques extraits de code pertinant aident toujours. Enfin, utilisez-vous des panneaux de mise à jour ou quoi que ce soit AJAX-y? –

+0

En utilisant les validateurs habituels, pas de CustomValidator du tout. Rien AJAXy, pas de panneaux ... rien. juste une forme simple :) – Roman

Répondre

9

Vous pouvez toujours déclencher la validation par la méthode validator1.Validate(), qui fera la comparaison côté serveur. Vérifiez Page.IsValid pour voir si la validation côté serveur n'est pas effectuée? Je pense que vous pouvez l'appeler via Page.Validate().

HTH

15

appeler Explicitement Page.Validate() sur le côté serveur.

Ou le Page.Validate(string) surchargé pour cibler l'un de vos groupes de validation.

Mise à jour:

J'ai oublié, après avoir exécuté Valider (..), vérifiez la Page.IsValid property - il est à vous d'arrêter la page de soumettre si cette propriété == false.

+0

Salut, J'ai essayé cela - Mais n'a toujours pas fonctionné. J'utilise les validateurs asp.net standards. même pas la coutume. lorsque je désactive le javascript - il passe juste, même si j'utilise explicitement Page.Validate(); – Roman

+0

Hmmmmm ... si ce n'est déjà fait, essayez la version surchargée. Sinon, de quelle méthode ou de quel événement appelez-vous Page.Validate? –

+0

J'ai raté le bateau sur celui-ci en oubliant Page.IsValid. –

3

Si vous utilisez des contrôles de validation standard, les données sont toujours revérifiées sur le serveur même si la validation côté client est spécifiée.

Voir la note dans cet article juste après la figure 2 :, qui dit:

Double-Contrôle de validation côté client

Un point intéressant est que même si les données de formulaire est validé sur le client (éliminant le besoin de demandes supplémentaires et réponses à partir du serveur pour valider les données), les données entrées sont revérifiées sur le serveur . Une fois les données vérifiées sur le client et validées, il est revérifié sur le serveur en utilisant les mêmes règles de validation . Ce sont des règles que vous établissez pour assurer contre certains programmeur difficile là-bas en essayant de contourner le processus de validation par en affichant la page sur le serveur comme si il a passé la validation.

http://msdn.microsoft.com/en-us/library/aa479013.aspx

Cependant, vous pouvez forcer la validation sur le serveur en appelant Page.Validate()

3

romain,

Vous pouvez utiliser le validateur personnalisé ASP.net pour fournir à la fois un client et une méthode de serveur pour la validation. De cette façon, si vous désactivez le js, vous devriez toujours utiliser la méthode de validation du serveur. Dans cet exemple, la fonction "ClientValidate" serait définie dans un bloc javascript sur votre page, et la fonction "ServerValidate" existerait dans votre fichier codebehind.

<asp:textbox id="textbox1" runat="server"> 
<asp:CustomValidator id="valCustom" runat="server" 
    ControlToValidate="textbox1" 
    ClientValidationFunction="ClientValidate" 
    OnServerValidate="ServerValidate" 
    ErrorMessage="*This box is not valid" dispaly="dynamic">* 
</asp:CustomValidator> 
+0

Tous les validateurs ASP.NET fournissent une validation côté client et côté serveur - et pas seulement le CustomValidator. –

0

trouvé la réponse! La réponse est d'utiliser Page.Validate(), puis recherchez Page.IsValid pour vérifier si la validation était valide ou non. Utiliser seulement Page.Validate() n'a pas aidé - le code a continué et n'a pas arrêté.

Merci les gars, Roman

Questions connexes