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
Utilizzare flat e flatMap per appiattire array innestati in array
Utilizzo di Set e Array in JavaScript
Utilizzare parametri a livello di controller nel routing di ASP.NET Core
Migrare un progetto ASP.NET Core da .NET 6 a .NET 7
Gestire condizioni complesse in JavaScript
Leggere i dati di configurazione di ASP.NET Core da Azure Key Vault
Sfruttare la local cache del browser tramite gli ETag in 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
Eseguire operazioni con timeout in React
Definire le impostazioni di cache a livello di controller in ASP.NET Core 7
3 metodi JavaScript che ogni applicazione web dovrebbe contenere - Parte 2