Lo scopo di un view engine è fondamentalmente quello di consentirci di integrare markup HTML e codice, così che possiamo descrivere la logica secondo cui una pagina web dinamica debba essere generata. Tipicamente, questo compito viene assolto distinguendo i due mondi, ossia quello dei tag e quello degli statement C# o Visual Basic grazie a speciali tag, che servono quindi a individuare i punti in cui avviene il cosiddetto context switching.
In Razor, questo context switching avviene grazie al carattere @, tramite cui possiamo identificare intere porzioni di codice semplicemente includendole all'interno di un blocco @{ ... } nel caso di C#, o @Code ... End Code in Visual Basic:
@{ string myString = "La mia prima pagina Razor"; string myInt = 14; }
@Code Dim myString as String = "La mia prima pagina Razor" Dim myInt as Integer = 14 End Code
Avendo delimitato in questo modo la porzione di testo contenente il vero e proprio codice (nell'esempio precedente, la dichiarazione di due variabili), siamo in grado di integrare nello stesso file anche del markup HTML, senza dover prendere alcun accorgimento particolare:
@{ // .. codice qui .. } <html> <body> <h1>Questo è un header</h1> </body> </html>
All'interno del codice HTML, possiamo poi effettuare, quando vogliamo, un nuovo context switching, ad esempio per popolare dinamicamete il tag H1 in base al contenuto della variabile myString, riutilizzando il carattere @.
@{ string myString = "La mia prima pagina Razor"; } <h1>@myString</h1>
Come possiamo notare, nel caso in cui il codice sia inline, occupi cioé una sola riga, non è necessario definire esplicitamente i blocchi @{ ... } o @Code ... End Code.
Riferimenti utili
Il nostro speciale su ASP.NET Razorhttps://www.aspitalia.com/focuson/1253/Speciale-Razor-View-Engine-WebMatrix-ASP.NET-MVC.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Disabilitare automaticamente un workflow di GitHub
Disabilitare automaticamente un workflow di GitHub (parte 2)
Mascherare l'output di un valore all'interno dei log di un workflow di GitHub
Come migrare da una form non tipizzata a una form tipizzata in Angular
Implementare il throttling in ASP.NET Core
Usare lo spread operator con i collection initializer in C#
Usare una container image come runner di GitHub Actions
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Utilizzare le Cache API di JavaScript per salvare elementi nella cache del browser
Eseguire operazioni sui blob con Azure Storage Actions
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP
Sfruttare lo streaming di una chiamata Http da Blazor
I più letti di oggi
- Riordinare le righe di una GridView di ASP.NET con jQuery
- Creazione di un alarm con suono personalizzato con Windows Phone 7.1
- Utilizzare la session affinity con Azure Container Apps
- Blue-green deployment con Azure Web App e DevOps
- Ed infine anche il calendario :)
- Configurare la diagnostica di Azure attraverso Visual Studio
- Recuperare la data di creazione di un tag tramite una pipeline YAML di Azure DevOps
- Microsoft Security Bulletin MS05-002
- .NET Core e dispositivi IoT
- Eseguire attività pianificate con Azure Container Jobs