This article has been localized into French by the community.
Introduction
A l'origine, quand Microsoft a créé le framework ASP.NET MVC, il utilisait les pages WebForms pour afficher du contenu. Cependant, les WebForms n'étaient pas aussi flexibles que les autres framework MVC - Il y avait beaucoup trop de travail en amont dans le ViewState, les contrôles serveurs, etc. C'est pour cela que Microsoft a décidé d'implémenter un langage / moteur de vue plus léger pour le framework MVC. Ils l'appelèrent Razor et il fut distribué en Janvier 2011 comme module de l'ASP.NET v3.
Razor vous autorise à écrire dans divers "dialectes", selon votre langage .NET favori. Dans ce tutoriel, nous nous concentrerons sur la version C# de Razor, mais vous pouvez également utiliser Razor avec VB.NET.
Pourquoi utiliser Razor ?
Le principal avantage de Razor est que l'on peut mélanger du code client (HTML) avec du code serveur (par exemple C# ou VB.NET), sans avoir à passer explicitement d'une syntaxe à une autre. Voici un exemple de page en ASP.NET WebForms :
<p>Hello, world - my name is <%= name %> and the current date is: <%= DateTime.Now.ToString() %></p>
Dans Razor, vous pouvez référencer les variables serveurs en les préfixant avec le caractère arobase (@). Le code précédent ressemble à ceci avec Razor :
<p>Hello, world - my name is @name and the current date is: @DateTime.Now.ToString()</p>
Bien entendu, cet exemple n'a pas énormément de différences, mais à terme, cela devient plus simple et plus rapide de construire une page et de combiner les codes ensemble. Cela devient plus évident lorsque l'on cherche à faire quelque chose de plus avancé, comme par exemple insérer une condition dans votre vue :
<%
if(Request.QueryString["test"] != null)
{
%>
<p>Lots of markup here...</p>
<p>Test value: <b><%= Request.QueryString["test"] %></b></p>
<p>And even more here...</p>
<%
}
%>
L'équivalent Razor est celui-ci :
@if(Request.QueryString["test"] != null)
{
<p>Lots of markup here...</p>
<p>Test value: <b>@Request.QueryString["test"]</b></p>
<p>And even more here...</p>
}
Conclusion
Comme vous pouvez le constater dans les exemples précédents, Razor rend le mélange entre code client et code serveur beaucoup plus facile. Dans les prochains articles, nous étudierons plus en détail la syntaxe Razor et son fonctionnement.