Comment : tester par programme la validité pour les contrôles serveur ASP.NET
Mise à jour : novembre 2007
Les contrôles de validation testent les entrées d'utilisateur, définissent un état d'erreur et génèrent des messages d'erreur. Ils ne modifient pas l'enchaînement du traitement de la page — par exemple, ils ne contournent pas votre code s'ils détectent une erreur d'entrée d'utilisateur. En revanche, vous testez l'état des contrôles dans votre code avant d'utiliser la logique spécifique à une application. Si vous détectez une erreur, vous empêchez l'exécution de votre propre code ; la page poursuit son traitement et est retournée à l'utilisateur avec des messages d'erreur.
Note de sécurité : |
---|
Par défaut, les pages Web ASP.NET valident automatiquement que des utilisateurs malveillants n'essaient pas d'envoyer des éléments de script ou HTML à votre application. Pour plus d'informations, consultez Vue d'ensemble des attaques de script. |
Vous pouvez tester un état général à l'échelle de la page, ainsi que l'état de contrôles individuels. En général, vous le faites dans le gestionnaire d'événements que vous avez créé pour la page.
Pour tester un état d'erreur général
Dans votre code, testez la propriété IsValid de la page. Cette propriété reporte les valeurs des propriétés IsValid de tous les contrôles de validation de la page (à l'aide d'un ET logique) ; si l'un des contrôles de validation a la valeur invalid, la propriété de la page retournera la valeur false.
Remarque : Les informations de validation ne sont pas disponibles pendant l'initialisation ou pendant l'étape de chargement de la page. Cependant, vous pouvez appeler manuellement la méthode Validate pendant Page_Load, puis tester la propriété IsValid de la page. Pour plus d'informations sur les états de page, consultez Vue d'ensemble du cycle de vie des pages ASP.NET.
L'exemple suivant illustre le gestionnaire d'événements d'un bouton. Le code teste la propriété IsValid de la page. Notez qu'aucune clause Else n'est nécessaire, car la page sera automatiquement retournée au navigateur et les contrôles de navigation afficheront leurs propres messages d'erreur.
Public Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click If Me.IsValid Then ' Perform database updates or other logic here End If End Sub
void Button1_Click(object sender, System.EventArgs e) { if (IsValid) { // Perform database updates or other logic here. } }
Pour tester l'état d'erreur de contrôles individuels
Parcourez la collection Validators de la page contenant les références à tous les contrôles de validation. Vous pouvez examiner la propriété IsValid de chacun des contrôles de validation.
Remarque : Si vous souhaitez exécuter ce contrôle pendant Page_Load, vous devez d'abord appeler manuellement la méthode Validate.
L'exemple suivant montre comment obtenir l'état des contrôles de validation.
If (Me.IsPostBack) Then Me.Validate() If (Not Me.IsValid) Then Dim msg As String ' Loop through all validation controls to see which ' generated the error(s). Dim oValidator As IValidator For Each oValidator In Validators If oValidator.IsValid = False Then msg = msg & "<br />" & oValidator.ErrorMessage End If Next Label1.Text = msg End If End If
if (this.IsPostBack) { this.Validate(); if (!this.IsValid) { string msg = ""; // Loop through all validation controls to see which // generated the errors. foreach (IValidator aValidator in this.Validators) { if (!aValidator.IsValid) { msg += "<br />" + aValidator.ErrorMessage; } } Label1.Text = msg; } }
Voir aussi
Tâches
Comment : valider par programme les contrôles serveur ASP.NET
Référence
Validation des entrées d'utilisateur dans des pages Web ASP.NET