This article has been localized into Italian by the community.
Introduzione
Quando Microsoft creò inizialmente il framework ASP.NET MVC, utilizzò le pagine WebForms per visualizzare il contenuto di un sito web. Però WebForms non era abbastanza flessibile come i programmatori si aspettavano dopo aver usato altri framework MVC. C'era troppo pesantezza causata dalla ViewState, dai controlli lato server etc. Pertanto, Microsoft decise di realizzare un sistema linguaggio/visualizzazione molto più leggero e semplice per il framework MVC. Lo chiamarono Razor e fu rilasciato nel Gennaio 2011 come parte della versione 3 di ASP.NET MVC.
Razor ti permette di scrivere in vari "dialetti", basati sul tuo linguaggio NET preferito. In questa guida, utilizzeremo la versione C# di Razor, ma è possibile utilizzare Razor anche con VB.NET.
Perchè usare Razor?
Il più grande vantaggio ad usare Razor si trova nel fatto che puoi mischiare il codice lato client (HTML) con il codice lato server (C# o VB.NET), senza dover esplicitamente dover distinguere i due tipi di sintassi. Per esempio, considerate questa pagina in ASP.NET WebForms.
<p>Hello, world - my name is <%= name %> and the current date is: <%= DateTime.Now.ToString() %></p>
In Razor è possibile utilizzare le variabili lato server semplicemente prefissandole con il carattere @. L'esempio precedente, scritto in Razor sarebbe il seguente:
<p>Hello, world - my name is @name and the current date is: @DateTime.Now.ToString()</p>
Ovviamente, questo esempio elementare, non vi farà risparmiare la battuta di tantissimi tasti, ma a lungo andare, questo farà si che sia molto più semplice e molto più veloce costruire le vostre pagine e combinare il markup HTML con il codice. La cosa diventa più ovvia quando si vuole fare qualcosa leggermente più avanzata, come inserire una istruzione condizionale nella View.
<%
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>
<%
}
%>
In Razor otterete lo stesso risultato con questo:
@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>
}
Riepilogo
Come potete vedere dagli esempi precedenti, Razor rende molto più semplice combinare il markup HTML ed il codice. In prossimi due capitoli, andremo più in profondità nella sintassi Razor per capire come funziona.