Razor ASP.NET - Sintassi del codice C# e VB


Razor supporta sia C# (C diesis) che VB (Visual Basic).


Regole principali della sintassi di Razor per C#

  • I blocchi di codice Razor sono racchiusi tra @{ ... }
  • Le espressioni inline (variabili e funzioni) iniziano con @
  • Le istruzioni di codice terminano con punto e virgola
  • Le variabili vengono dichiarate con la parola chiave var
  • Le stringhe sono racchiuse tra virgolette
  • Il codice C# fa distinzione tra maiuscole e minuscole
  • I file C# hanno l'estensione .cshtml

Esempio C#

<!-- Single statement block -->
@{ var myMessage = "Hello World"; }

<!-- Inline expression or variable -->
<p>The value of myMessage is: @myMessage</p>

<!-- Multi-statement block -->
@{
var greeting = "Welcome to our site!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Here in Huston it is: " + weekDay;
}

<p>The greeting is: @greetingMessage</p>

Regole principali della sintassi del rasoio per VB

  • I blocchi di codice Razor sono racchiusi in @Code... End Code
  • Le espressioni inline (variabili e funzioni) iniziano con @
  • Le variabili vengono dichiarate con la parola chiave Dim
  • Le stringhe sono racchiuse tra virgolette
  • Il codice VB non fa distinzione tra maiuscole e minuscole
  • I file VB hanno l'estensione .vbhtml

Esempio

<!-- Single statement block  --> 
@Code dim myMessage = "Hello World" End Code
 
<!-- Inline expression or variable --> 
<p>The value of myMessage is: @myMessage</p> 
 
<!-- Multi-statement block --> 
@Code
dim greeting = "Welcome to our site!" 
dim weekDay = DateTime.Now.DayOfWeek 
dim greetingMessage = greeting & " Here in Huston it is: " & weekDay
End Code


<p>The greeting is: @greetingMessage</p>


Come funziona?

Razor è una semplice sintassi di programmazione per incorporare il codice del server nelle pagine Web.

La sintassi Razor si basa sul framework ASP.NET, la parte di Microsoft.NET Framework progettata specificamente per la creazione di applicazioni Web.  

La sintassi Razor ti offre tutta la potenza di ASP.NET, ma usa una sintassi semplificata che è più facile da imparare se sei un principiante e ti rende più produttivo se sei un esperto.

Le pagine Web di Razor possono essere descritte come pagine HTML con due tipi di contenuto: contenuto HTML e codice Razor.

Quando il server legge la pagina, esegue prima il codice Razor, prima di inviare la pagina HTML al browser. Il codice che viene eseguito sul server può eseguire attività che non possono essere eseguite nel browser, ad esempio l'accesso a un database del server. Il codice del server può creare contenuto HTML dinamico al volo, prima che venga inviato al browser. Visto dal browser, l'HTML generato dal codice del server non è diverso dal contenuto HTML statico.

Le pagine Web ASP.NET con sintassi Razor hanno l'estensione di file speciale cshtml (Razor usando C#) o vbhtml (Razor usando VB).


Lavorare con gli oggetti

La codifica del server spesso coinvolge oggetti.

L'oggetto "DateTime" è un tipico oggetto ASP.NET integrato, ma gli oggetti possono anche essere definiti automaticamente, una pagina Web, una casella di testo, un file, un record di database, ecc.

Gli oggetti possono avere metodi che possono eseguire. Un record di database potrebbe avere un metodo "Salva", un oggetto immagine potrebbe avere un metodo "Ruota", un oggetto e-mail potrebbe avere un metodo "Invia" e così via.

Gli oggetti hanno anche proprietà che ne descrivono le caratteristiche. Un record di database potrebbe avere una proprietà FirstName e LastName (tra le altre).

L'oggetto ASP.NET DateTime ha una proprietà Now (scritta come DateTime.Now) e la proprietà Now ha una proprietà Day (scritta come DateTime.Now.Day). L'esempio seguente mostra come accedere ad alcune proprietà dell'oggetto DateTime:

Esempio

<table border="1">
<tr>
<th width="100px">Name</th>
<td width="100px">Value</td>
</tr>
<tr>
<td>Day</td><td>@DateTime.Now.Day</td>
</tr>
<tr>
<td>Hour</td><td>@DateTime.Now.Hour</td>
</tr>
<tr>
<td>Minute</td><td>@DateTime.Now.Minute</td>
</tr>
<tr>
<td>Second</td><td>@DateTime.Now.Second</td>
</tr>
</td>
</table>

Se e altre condizioni

Una caratteristica importante delle pagine web dinamiche è che puoi determinare cosa fare in base alle condizioni.

Il modo comune per farlo è con le istruzioni if ​​... else:

Esempio

@{
var txt = "";
if(DateTime.Now.Hour > 12)
  {txt = "Good Evening";}
else
  {txt = "Good Morning";}
}
<html>
<body>
<p>The message is @txt</p>
</body>
</html>

Lettura dell'input dell'utente

Un'altra caratteristica importante delle pagine web dinamiche è che puoi leggere l'input dell'utente.

L'input viene letto dalla funzione Request[] e la pubblicazione (input) viene verificata dalla condizione IsPost:

Esempio

@{
var totalMessage = "";
if(IsPost)
    {
    var num1 = Request["text1"];
    var num2 = Request["text2"];
    var total = num1.AsInt() + num2.AsInt();
    totalMessage = "Total = " + total;
    }
}

<html>
<body style="background-color: beige; font-family: Verdana, Arial;">
<form action="" method="post">
<p><label for="text1">First Number:</label><br>
<input type="text" name="text1" /></p>
<p><label for="text2">Second Number:</label><br>
<input type="text" name="text2" /></p>
<p><input type="submit" value=" Add " /></p>
</form>
<p>@totalMessage</p>
</body>
</html>