Le moderne applicazioni web, per migliorare le prestazioni e garantire all'utente una migliore esperienza di utilizzo, spesso caricano dinamicamente porzioni di pagina solo quando effettivamente necessario, tramite una chiamata AJAX. Un esempio tipico è quello della visualizzazione di un'informazione di dettaglio o di una maschera di edit all'interno di una popup o di una sezione del layout.
In queste situazioni, abbiamo bisogno del solo markup della view, e vogliamo ovviamente evitare che quest'ultima venga renderizzata senza la layout page. Come sappiamo, in ASP.NET MVC possiamo disabilitare la layout page per una particolare view impostando a null il path della sua proprietà Layout:
@{ Layout = null; } @* markup qui *@ <h1>View caricata in AJAX</h1>
Possiamo però evitare di replicare questa impostazione per ogni view che debba essere caricata tramite AJAX, inserendo il codice seguente all'interno del file _ViewStart.cshtml, che viene eseguito prima di ogni rendering:
@{ if (this.ViewContext.HttpContext.Request.IsAjaxRequest()) { Layout = null; } else { Layout = "~/Views/Shared/_Layout.cshtml"; } }
In pratica, a ogni invocazione, viene verificato se questa provenga da una chiamata AJAX e in base a questa condizione, viene attivata o meno la layout page.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare automaticamente una issue di GitHub
Utilizzare azurite come simulatore di Azure Storage
Controllare lo stato di un servizio gRPC in ASP.NET Core tramite Health Check
Web3, Smart Contract, Metamask e Web Application
Innestare una query nel metodo Contains di Entity Framework Core
Utilizzare la parola chiave var con lambda eExpression e method group in C# 10
Effettuare un loop di una GitHub Action
Tracciare gli eventi tramite i DevTools di Chrome
Gestire le chiamate a servizi esterni in ASP.NET Core e Blazor tramite Polly
Autenticazione basata su certificati con ASP.NET Core
Chiamare un endpoint ASP.NET Core protetto da Certificate Authentication
Organizzare il codice JavaScript utilizzando i moduli
I più letti di oggi
- ASP.NET MVC, Aree e Controller: risolvere le ambiguità
- Raggruppare i parametri di una minimal API in un singolo oggetto in ASP.NET Core
- Gestire tipi complessi in query string grazie a IParsable in ASP.NET Core 7.0
- Leggere e scrivere su cookie tramite Blazor
- Migliorare la scalabilità di ASP.NET Core 7 grazie all'output cache
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!