Razor est un langage de modèle utilisé par les pages Web ASP.NET, ASP.NET MVC (depuis la version 3) et ASP.NET Core. Il ajoute une couche d'abstraction au-dessus de la génération HTML. Il prend en charge des transitions transparentes entre le balisage HTML et le code C # ou VB. Les transitions entre le balisage et le code sont indiquées par le signe «@».

Razor est un langage de modèle utilisé par les pages Web ASP.NET, ASP.NET MVC(depuis la version 3) et ASP.NET Core. Il prend en charge des transitions transparentes entre le balisage HTML et le code C # ou VB. Les fichiers Razor sont de type d'extension .cshtml (pour C #) et .vbhtml (pour VB). Au lieu d'un "Code Behind File" avec votre code C # ou VB, vous pouvez injecter votre code dans le même fichier avec votre balisage HTML. Les transitions entre le balisage et le code sont indiquées par le signe «@».

Par exemple, pour afficher une liste HTML simple, cette syntaxe C # est utilisée:

<ul>
@for (int i = 0; i < 10; i++) {
    <li>Item @i</li>
}
</ul>

Pour rendre une simple liste HTML en VB, cette syntaxe est utilisée:

<ul>
@For i As Integer = 0 To 9
    @<li>Item @i</li>    
Next
</ul>

Razor prend en charge les modèles d'assistance:

@helper Bold(string text) {
   return "<bold>"+text+"<bold>";
}

<p>
  This text is @Bold("bold")
<p> 

Par défaut, toutes les chaînes sont encodées en HTML, si vous souhaitez éviter cela, utilisez l'assistant Raw:

<p>@Html.Raw("<bold>hello</bold>")</p>

Il peut arriver que vous souhaitiez inclure du texte dans une section d'échappement, pour ce faire, utilisez <text> ou @::

@if(condition) {
 @: This is going to be rendered
}

@if(condition) {
 <text>
   This is a 
   Multiline text block 
 </text>
} 

Articles de référence


  1. Référence rapide de la syntaxe Razor C #
  2. Introduction à la programmation Web ASP.NET à l'aide de la syntaxe Razor (C #)
  3. Référence de syntaxe Razor pour ASP.NET Core