Convalida lato client per i controlli ASP.NET lato server
Aggiornamento: novembre 2007
Se l'utente utilizza un browser che supporta l'HTML dinamico (DHTML), i controlli di convalida ASP.NET possono eseguire la convalida utilizzando lo script client. Poiché i controlli sono in grado di fornire un feedback immediato, senza eseguire un percorso di andata e ritorno al server, l'utilizzo della pagina da parte dell'utente risulterà migliorato.
Nella maggioranza dei casi, non è necessario apportare alcuna modifica alla pagina o ai controlli di convalida per utilizzare la convalida lato client. I controlli, infatti, sono in grado di rilevare automaticamente se il browser supporta il DHTML e di eseguire l'eventuale verifica. Per la convalida lato client viene utilizzato lo stesso meccanismo di visualizzazione degli errori utilizzato per la convalida lato server.
Nota sulla sicurezza: |
---|
La convalida viene eseguita sul server anche se è stata già eseguita sul client. Ciò consente di stabilire lo stato di convalida del codice server nonché fornire una maggiore protezione dagli utenti che ignorano la convalida lato client. |
Differenze nella convalida lato client
Se la convalida viene eseguita sul client, i controlli di convalida includono alcune funzionalità aggiuntive:
Per un riepilogo dei messaggi di errore di convalida, è possibile visualizzarli in una finestra di messaggio, visualizzata quanto l'utente invia la pagina. Per informazioni dettagliate, vedere Procedura: controllare la visualizzazione dei messaggi di errore di convalida per i controlli server ASP.NET.
Il modello a oggetti per i controlli di convalida è leggermente diverso nel client. Al riguardo, vedere Modello di oggetti di convalida del client più avanti in questo argomento.
La convalida lato client presenta alcune differenze di minore importanza:
Se è attivata la convalida lato client, nella pagina verranno inclusi riferimenti alle librerie di script utilizzati per l'esecuzione di tale convalida.
Quando si utilizza un controllo RegularExpressionValidator, è possibile verificare le espressioni sul client se è disponibile un linguaggio compatibile con ECMAScript, come Microsoft JScript. Le espressioni regolari del lato client presentano differenze minime rispetto al controllo delle espressioni regolari che viene effettuato sul server utilizzando la classe Regex.
Nella pagina è incluso un metodo del lato client per intercettare e gestire l'evento Click prima dell'invio della pagina.
Modello a oggetti di convalida del client
I controlli di convalida presentano un modello a oggetti molto simile sul client e sul server. È possibile ad esempio eseguire il test di convalida leggendo la proprietà IsValid di un controllo di convalida nello stesso modo sul client e sul server.
Esistono tuttavia delle differenze nelle informazioni di convalida esposte a livello di pagina. Sul server la pagina supporta le proprietà, mentre sul client contiene variabili globali. Nella tabella seguente vengono confrontate le informazioni esposte nella pagina.
Variabile della pagina del client |
Proprietà della pagina del server |
---|---|
Page_IsValid |
IsValid |
Page_Validators (matrice) Contiene riferimenti a tutti i controlli di convalida sulla pagina. |
Validators (insieme) Contiene riferimenti a tutti i controlli di convalida. |
Page_ValidationActive Un valore Boolean che indica se è necessario eseguire la convalida. Impostare la variabile su false per disattivare la convalida lato client a livello di codice. |
(nessun equivalente) |
Nota: |
---|
Tutte le informazioni di convalida correlate alla pagina dovrebbero essere considerate di sola lettura. |
Invio di pagine con errori di convalida lato client
In alcune circostanze è possibile che si preferisca non utilizzare la convalida lato client ma solo quella lato server, anche se questo tipo di convalida è disponibile. La convalida lato client, ad esempio, potrebbe non essere possibile nel caso in cui siano richieste informazioni o risorse disponibili solo sul server, come ad esempio l'accesso a un database.
Per impostazione predefinita, quando si esegue la convalida lato client, l'utente non può inviare la pagina al server se la pagina contiene errori. Tuttavia, potrebbe essere necessario consentire all'utente di effettuare l'invio anche in presenza di errori. È ad esempio possibile che si desideri inviare una pagina contenente un pulsante di annullamento o un pulsante di spostamento, tramite il pulsante stesso, anche se la convalida di alcuni controlli non riesce. Per ulteriori informazioni, vedere Procedura: disattivare la convalida per i controlli server ASP.NET.
Vedere anche
Concetti
Tipi di convalida per i controlli ASP.NET lato server