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
Utilizzare il trigger SQL con le Azure Function
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Estrarre dati randomici da una lista di oggetti in C#
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Utilizzare DeepSeek R1 con Azure AI
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Supportare lo HierarchyID di Sql Server in Entity Framework 8
Gestione dei nomi con le regole @layer in CSS
Ottimizzare le performance usando Span<T> e il metodo Split
Il nuovo controllo Range di Blazor 9
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento