Nel precedente script #1015 abbiamo visto come ASP.NET MVC 2 contenga un supporto per validare i dati inseriti dall'utente tramite un sistema basato sulle DataAnnotation. Per migliorare la user experience, è possibile effettuare questa verifica anche sul client, a patto di aggiungere alla master page i riferimenti ai file Javascript seguenti (già inclusi nel template di default di Visual Studio):
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script> <script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script> <script src="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>
A questo punto all'interno di una View è sufficiente invocare il metodo EnableClientValidation per far sì che il framework inietti automaticamente l'opportuno codice Javascript in base alle DataAnnotation delle entity:
<% Html.EnableClientValidation(); %> <% using (Html.BeginForm()) {%> ...
Bisogna prestare attenzione al fatto, però, che tale tipologia di validazione non è sostitutiva di quella lato server, visto che non ci sono garanzie sul fatto che l'utente abbia effettivamente attivato gli script; pertanto è sempre necessario verificare anche a livello di controller la correttezza dei dati ottenuti in POST:
[HttpPost] public ActionResult Create(Person person) { if (!this.ModelState.IsValid) .... }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestire dati sensibili nella configurazione in ASP.NET Core
Eseguire operazioni con timeout in React
Gestire i file esterni in una PWA
Catturare la telemetria degli eventi di output cache in ASP.NET Core
Gestire la query string nell'output cache di ASP.NET Core
Raggruppare i parametri di una minimal API in un singolo oggetto in ASP.NET Core
3 metodi JavaScript che ogni applicazione web dovrebbe contenere - Parte 2
Migliorare la scalabilità di ASP.NET Core 7 grazie all'output cache
Mostrare una preview durante l'upload di un'immagine in Blazor
Gestire gli errori di caricamento delle immagini