miércoles, 19 de marzo de 2014

Introducción al Motor de Vistas Razor

Una aplicación ASP.NET MVC, soporta diferentes Motores de Vistas (View Engine), los cuales definen la manera en que se estructura la página HTML.

Uno de estos motores de vistas, es el clásico .aspx/.ascx/.master  utilizado en los Web Forms de ASP.NET. 

Razor es un motor de vista, que permite embeber código C# dentro de una página, sin utilizar los delimitadores <%=%>. Los archivos basados en este motor de vistas, poseen la extensión .cshtml.



Bloque de Sentencia Simple.
Cada bloque de código debe comenzar con el símbolo @, y posteriormente debe ir encerrado entre llaves { } el código C# correspondiente.

@{ var mensaje = "Hola Mundo"; }
El Mensaje de esta página es : @mensaje







En este bloque se asigno a una variable una cadena de texto "Hola Mundo", posteriormente, fuera del bloque, dicha variable es accesible globalmente por medio del caracter @.


El Bloque anterior generaría una página HTML, la cual le muestra al usuario el texto:




El Mensaje de esta página es : Hola Mundo






Bloque de Múltiples Sentencias.



Cuando se trabaja con un grupo de sentencias, para generar un resultado, la forma de trabajar es exactamente igual que en el caso previo, pero teniendo en cuenta de finalizar cada línea con punto y coma.

@{
    var montoinicial = 100;
    var interes = 12;
    var montofinal = (montoinicial * interes) / 100;
}
Aplicando al monto inicial @montoinicial un interés del @interes % nos da como reresultado @montofinal





Condicionales.



Con el Motor de Vistas Razor, puede definirse un condicional dentro de bloque Razor o fuera del mismo, como puede observarse en el siguiente ejemplo.




@{
var esValido = true;
if(esValido)
{
    <p>Probando un Condicional dentro de bloque Razor, entrada positiva</p>
}
else
{
    <p>Probando un Condicional dentro de bloque Razor, entrada negativa</p>;
}
}






Bucles.


Puede incluirse dentro de una páginas ASP.NET MVC con Motor de Vistas RAZOR, los mismos bucles que se utilizan en la programación C#, es decir, for, while do while, foreach


@{ 

for(var cont=1, cont<=3, cont++) {
    <p>Contador es @cont</p>
}

string[] nombres = {"Juan","Jose","Maria"};
foreach(var nombre in nombres) {
    <p>El Nombre es @nombre</p>
}

var contador=1;
do {
  <p>Este es el paso @contador por el Bucle DO</p>
  contador++;
} while(contador<3);

}



Comentarios.


Existen 3 maneras de realizar comentarios en un bloque RAZOR, las dos primeras son las clásicas utilizadas por C#, es decir, anteponer a una línea los caracteres // o encerrar un bloque entre /* */.
Además de estas, RAZOR incluye la posibilidad de comentar un bloque de texto, encerrando el mismo entre los caracteres @*   *@.



Utilizar Objetos Propios del C#.


Anteponiendo siempre el caracter @, o bien encerrando código dentro de un bloque RAZOR, se puede acceder a los objetos, y sus propiedades, tal como puede verse en el siguiente ejemplo:

Hoy es @System.DateTime.Now.Date.ToString("D"), y la hora es @System.DateTime.Now



Hasta aquí esta breve introducción a Razor, la cual brinda las bases para comenzar a utilizar este motor de vistas.