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 Copilot con Azure Cosmos DB
Simulare Azure Cosmos DB in locale con Docker
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Creare una libreria CSS universale: Cards
Generare un hash con SHA-3 in .NET
Ordine e importanza per @layer in CSS
Ordinare randomicamente una lista in C#
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Limitare le richieste lato server con l'interactive routing di Blazor 8
Utilizzare Container Queries nominali
Recuperare App Service cancellati su Azure
Configurare lo startup di applicazioni server e client con .NET Aspire
I più letti di oggi
- Simulare Azure Cosmos DB in locale con Docker
- Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- .NET Conference Italia 2024 - Milano
- .NET Conference Italia 2023 - Milano e Online