Procedura: eseguire il test della validità dei controlli server ASP.NET a livello di codice
Aggiornamento: novembre 2007
Grazie ai controlli di convalida è possibile eseguire il test dell'input dell'utente, impostare uno stato di errore e produrre messaggi di errore. Tali controlli non modificano il flusso dell'elaborazione della pagina, ad esempio non ignorano il codice se rilevano un errore nell'input dell'utente. Al contrario, il test dello stato dei controlli nel codice viene eseguito prima della logica specifica dell'applicazione. Se viene rilevato un errore, l'esecuzione del codice non avviene; l'elaborazione della pagina continua ed essa viene restituita all'utente insieme ai messaggi di errore.
Nota sulla sicurezza: |
---|
Per impostazione predefinita, le pagine Web ASP.NET verificano automaticamente che utenti malintenzionati non tentino di inviare script o elementi HTML all'applicazione. Per ulteriori informazioni, vedere Cenni preliminari sugli attacchi tramite script. |
È possibile eseguire un test sia di uno stato generale, a livello di pagina, sia dello stato dei controlli individuali. Generalmente queste operazioni vengono eseguite nei gestori eventi creati per una pagina.
Per eseguire un test per uno stato di errore generale
Nel codice eseguire il test della proprietà IsValid della pagina. La proprietà presenta informazioni riassuntive sui valori delle proprietà IsValid di tutti i controlli di convalida della pagina (utilizzando un operatore AND logico). Se uno dei controlli di convalida viene impostato come non valido, la proprietà della pagina restituirà il valore false.
Nota: Le informazioni di convalida non sono disponibili durante l'inizializzazione o la fase di caricamento di una pagina. È tuttavia possibile chiamare manualmente il metodo Validate durante l'esecuzione di Page_Load e quindi eseguire il test della proprietà IsValid della pagina. Per informazioni dettagliate sugli stati della pagina, vedere Cenni preliminari sul ciclo di vita di una pagina ASP.NET.
Nel codice di esempio riportato di seguito viene mostrato il gestore eventi per un pulsante. Nel codice eseguire il test della proprietà IsValid della pagina. Non è necessaria alcuna clausola else, in quanto la pagina verrà restituita automaticamente al browser e i messaggi di errore verranno visualizzati nei relativi controlli di convalida.
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. } }
Per eseguire il test dello stato di errore dei controlli individuali
Scorrere in ciclo l'insieme Validators della pagina che contiene riferimenti a tutti i controlli di convalida. Passare quindi a esaminare la proprietà IsValid di ogni controllo di convalida.
Nota: Per eseguire questo controllo durante l'esecuzione di Page_Load, chiamare prima manualmente il metodo Validate.
Nel codice di esempio riportato di seguito viene illustrato come ottenere informazioni sullo stato dei singoli controlli di convalida.
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; } }
Vedere anche
Attività
Procedura: convalidare i controlli server ASP.NET a livello di codice