Le validateur de gamme ASP.net passe à la page suivante
-
05-07-2019 - |
Question
J'ai mis un validateur de plage dans un contrôle de zone de texte asp.net dans ma page Web; chaque fois que la plage ne se rencontre pas; il affichera le message d'erreur,
Mais cela passe à la page suivante. comment je peux l'empêcher de passer à la page suivante après avoir cliqué sur le bouton Soumettre alors que la plage n'était pas remplie?
La solution
-
Assurez-vous que votre bouton d'envoi se trouve dans le même
ValidationGroup
que votre validateur de plage. Cela est particulièrement vrai si vous avez défini plus d'unValidationGroup
. -
Assurez-vous que la propriété
CausesValidation
n'est pas définie sur False sur le bouton. La valeur par défaut estTrue
. Par conséquent, si la propriété n'est pas déclarée dans votre code ASPX ou derrière, le bouton déclenchera votre séquence de validation. -
Si vous n'utilisez pas le flux de page normal (la touche
UseSubmitBehvior
de votre bouton est définie surFalse
ou, dans certains cas, avec asych Rappels AJAX), vous voudrez alors envelopper le code de changement de page dans un blocIf
qui vérifiePage.IsValid
avant le déclenchement. -
Vérifiez que le
ControlToValidate
est défini sur le contrôle correct et qu'il n'a pas de valeur par défaut qui passe la validation.
Autres conseils
Code?
Soumettez-vous directement à la page suivante plutôt que de poster à la même page et de rediriger?
Vous redirigez-vous dans Page_Load, ce qui se produit