Nel corso del nostro articolo introduttivo su ASP.NET MVC 3, abbiamo visto come la gestione delle Layout View in Razor presenti qualche differenza rispetto a quanto eravamo abituati a fare con le Master Page del Web Forms View Engine.
In Razor, infatti, tramite il metodo RenderBody possiamo indicare il punto, nel layout della pagina, dove dovrà essere posizionato l'intero contenuto della View che sarà renderizzata.
<html>
<head>
...
</head>
<body>
@RenderBody()
</body>
</html>Spesso, però, si ha la necessità di definire delle sezioni addizionali, in altri punti del layout, in cui le View potranno eventualmente aggiungere del contenuto personalizzato. In Razor, questi placeholder aggiuntivi vengono chiamati Section e possono essere definiti, all'interno delle singole View, tramite il tag @section.
@section footer
{
<div>Copyright © 2001 by Marco De Sanctis</div>
}Nel codice in alto, ad esempio, abbiamo realizzato una section denominata "footer", che potrà poi essere visualizzata all'interno della Layout View sfruttando il metodo RenderSection.
<body>
@RenderBody()
<div id="footer">
@RenderSection("footer", required:false)
</div>
</body>Questo metodo, oltre al nome della sezione da visualizzare, ammette un secondo parametro required, tramite cui possiamo specificare se essa debba essere obbligatoriamente presente all'interno della view.
Nel caso di sezioni opzionali, può essere utile voler definire un layout di default, da utilizzare quando queste non siano specificate nella View visualizzata. Un simile risultato può essere ottenuto tramite il metodo IsSectionDefined, come nell'esempio seguente.
<body>
@RenderBody()
<div id="footer">
@if (!IsSectionDefined("footer"))
{
<div>Footer di default</div>
}
@RenderSection("footer", required:false)
</div>
</body>Per approfondimenti
Introduzione ad ASP.NET MVC 3https://www.aspitalia.com/articoli/asp.net-mvc/mvc3-overview.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Integrare OpenAI tramite Aspire
Semplificare i deployment con le label in Azure Container App
Gestire codice JavaScript con code splitting e lazy loading
Utilizzare Hybrid Cache in .NET 9
Escludere alcuni file da GitHub Copilot
Creare un agente A2Acon Azure Logic Apps
Creare una libreria CSS universale: Nav menu
Gestione degli eventi nei Web component HTML
Implementare il throttle in JavaScript
Ridimensionamento automatico input tramite CSS
Configurare OpenAI in .NET Aspire
I più letti di oggi
- Le DirectInk API nella Universal Windows Platform
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Sfruttare una CDN con i bundle di ASP.NET
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Gli oggetti CallOut di Expression Blend 4.0
- Inserire le news di Punto Informatico nel proprio sito
- Esaminare documenti XML con namespace utilizzando LINQ to XML


