This article has been localized into Spanish by the community.
Introducción
Cuando Microsoft creó el framework ASP. NET MVC, usaba páginas WebForms para mostrar contenido. Sin embargo, WebForms no era tan flexible como las personas estaban acostumbradas en otros frameworks MVC - también tenía mucha carga en la forma del ViewState, controles del servidor, etc. Por lo tanto, Microsoft decidió implementar un lenguaje / motor de vistas mucho mas simple y mas ligero para el framework MVC. Ellos lo llamaron Razor y fue liberado en enero del 2011, como parte de ASP. NET MVC versión 3.
Razor te permite escribir en varios "dialectos", basado en tu favorito lenguaje de .NET. En este tutorial, nosotros nos enfocaremos en la versión de C#, pero puedes usar Razor con VB. NET también.
¿Porqué usar Razor?
La mayor ventaja de Razor es el hecho de que puedes mezclar HTML en el lado del cliente con código del lado del server (por ejemplo, C# o VB. NET), sin tener explícitamente que dar saltos entre los dos tipos de sintaxis. Por mencionar algo, considera este ejemplo de una página en ASP.NET WebForms:
<p>Hello, world - my name is <%= name %> and the current date is: <%= DateTime.Now.ToString() %></p>
En Razor, puedes referenciar variables del lado del servidor, etc. simplemente agregando el prefijo con el carácter arroba (@). El ejemplo de arriba, escrito ahora con Razor, luce así:
<p>Hello, world - my name is @name and the current date is: @DateTime.Now.ToString()</p>
Ahora obviamente este ejemplo básico no te ahorra una tonelada de golpes de tecla, pero en el largo periodo, hace mas fácil construir páginas y combinar HTML con código. Esto se vuelve mas obvio cuando quieres hacer algo mas avanzado, como hacer un condicional en tu Vista:
<%
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>
<%
}
%>
En Razor, puedes lograr lo mismo así:
@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>
}
Resumen
Como puedes ver en los ejemplos de arriba, Razor simplemente hace mucho mas fácil combinar HTML con código. En los siguientes capítulos, daremos una mirada mas profunda en la sintaxis de Razor y como trabaja.