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 metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Path addizionali per gli asset in ASP.NET Core MVC
Implementare il throttle in JavaScript
Simulare Azure Cosmos DB in locale con Docker
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework
Evitare memory leaks nelle closure JavaScript
Creare una libreria CSS universale: Cards
Ricevere notifiche sui test con Azure Load Testing
Mischiare codice server side e client side in una query LINQ con Entity Framework
Abilitare il rolling update su Azure Functions flex consumption
Esporre un server MCP esistente con Azure API Management
Gestire gli errori nelle Promise JavaScript con try()
I più letti di oggi
- Gli oggetti CallOut di Expression Blend 4.0
- Sfruttare una CDN con i bundle di ASP.NET
- Le DirectInk API nella Universal Windows Platform
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Inserire le news di Punto Informatico nel proprio sito
- Utilizzare un DataContext specifico per la modalità design time di Blend e Visual Studio nei controlli Silverlight


