ASP.NET Razor - Syntaxe de code C# et VB


Razor prend en charge à la fois C# (C sharp) et VB (Visual Basic).


Principales règles de syntaxe Razor pour C#

  • Les blocs de code Razor sont entourés de @{ ... }
  • Les expressions en ligne (variables et fonctions) commencent par @
  • Les instructions de code se terminent par un point-virgule
  • Les variables sont déclarées avec le mot clé var
  • Les chaînes sont entourées de guillemets
  • Le code C# est sensible à la casse
  • Les fichiers C# ont l'extension .cshtml

Exemple 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>

Principales règles de syntaxe Razor pour VB

  • Les blocs de code Razor sont inclus dans @Code ... End Code
  • Les expressions en ligne (variables et fonctions) commencent par @
  • Les variables sont déclarées avec le mot clé Dim
  • Les chaînes sont entourées de guillemets
  • Le code VB n'est pas sensible à la casse
  • Les fichiers VB ont l'extension .vbhtml

Exemple

<!-- 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>


Comment ça marche?

Razor est une syntaxe de programmation simple pour intégrer le code du serveur dans les pages Web.

La syntaxe Razor est basée sur le framework ASP.NET, la partie du Microsoft.NET Framework spécialement conçue pour créer des applications Web.  

La syntaxe Razor vous donne toute la puissance d'ASP.NET, mais utilise une syntaxe simplifiée qui est plus facile à apprendre si vous êtes débutant et vous rend plus productif si vous êtes un expert.

Les pages Web Razor peuvent être décrites comme des pages HTML avec deux types de contenu : le contenu HTML et le code Razor.

Lorsque le serveur lit la page, il exécute d'abord le code Razor, avant d'envoyer la page HTML au navigateur. Le code qui est exécuté sur le serveur peut effectuer des tâches qui ne peuvent pas être effectuées dans le navigateur, par exemple accéder à une base de données du serveur. Le code serveur peut créer du contenu HTML dynamique à la volée, avant qu'il ne soit envoyé au navigateur. Vu du navigateur, le code HTML généré par le code du serveur n'est pas différent du contenu HTML statique.

Les pages Web ASP.NET avec la syntaxe Razor ont l'extension de fichier spéciale cshtml (Razor utilisant C#) ou vbhtml (Razor utilisant VB).


Travailler avec des objets

Le codage du serveur implique souvent des objets.

L'objet "DateTime" est un objet ASP.NET intégré typique, mais les objets peuvent également être auto-définis, une page Web, une zone de texte, un fichier, un enregistrement de base de données, etc.

Les objets peuvent avoir des méthodes qu'ils peuvent exécuter. Un enregistrement de base de données peut avoir une méthode "Save", un objet image peut avoir une méthode "Rotate", un objet email peut avoir une méthode "Send", etc.

Les objets ont également des propriétés qui décrivent leurs caractéristiques. Un enregistrement de base de données peut avoir une propriété FirstName et LastName (entre autres).

L'objet ASP.NET DateTime a une propriété Now (écrite sous la forme DateTime.Now) et la propriété Now a une propriété Day (écrite sous la forme DateTime.Now.Day). L'exemple ci-dessous montre comment accéder à certaines propriétés de l'objet DateTime :

Exemple

<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>

Conditions Si et Sinon

Une caractéristique importante des pages Web dynamiques est que vous pouvez déterminer ce qu'il faut faire en fonction des conditions.

La manière courante de procéder consiste à utiliser les instructions if ... else :

Exemple

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

Lecture de l'entrée utilisateur

Une autre caractéristique importante des pages Web dynamiques est que vous pouvez lire les entrées de l'utilisateur.

L'entrée est lue par la fonction Request[] et la publication (entrée) est testée par la condition IsPost :

Exemple

@{
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>