This article is currently in the process of being translated into Spanish (~98% done).
The switch statement
Previamente usamos sentencias if en nuestro código Razor para controlar el flujo del programa, pero estas no son las únicas sentencias condicionales disponibles cuando escribes un código Razor. Existen alternativas, en la forma de la sentencia switch. ya debes conocerla de C# u otro lenguaje de programación, pero en éste articulo, veremos como puedes usarlas en código Razor.
La sentencia switch trabaja definiendo una condición a evaluar y luego una o varias posibles salidas de ésta condición. Así por ejemplo, si tenemos un número especificado por el usuario en una variable y queremos varias salidas dependiendo del valor, con la sentencia switch quedaría como sigue:
switch(number)
{
case 1:
// Do something for number 1
break;
case 42:
// Do something for number 42
break;
}
Una sentencia switch en Razor luce tal y como en C#. pero con una diferencia importante: Puedes incluir HTML directamente dentro de cada bloque case, permitiéndote fácilmente la salida de markup y texto para cada caso. También, a menos que ya estés en un bloque de código Razor, necesitaras incluir al principio de la palabra switch, el símbolo @, tal y como lo hemos visto en ejemplos previos. El siguiente es un ejemplo completo de switch:
@switch(DateTime.Now.DayOfWeek)
{
case DayOfWeek.Monday:
<span>Uh-oh...</span>
break;
case DayOfWeek.Friday:
<span>Weekend coming up!</span>
break;
case DayOfWeek.Saturday:
case DayOfWeek.Sunday:
<span>Finally weekend!</span>
break;
default:
<span>Nothing special about this day...</span>
break;
}
En éste ejemplo, miraremos la propiedad DayOfWeek en la estructura DateTime.Now. Nos hará saber el día actual y luego podremos trabajar con el. Mostré varias formas de usar la sentencia case en este caso: Por ejemplo, Monday y Friday están especificados como salidas separadas. Luego tenemos Saturday y Sunday que se usan en el mismo bloque case (una excelente característica de la sentencia switch) y finalmente usamos default-keyword para manejar cualquier otra salida de la condición.
Sumario
En muchos lenguajes de programación, la sentencia switch es una alternativa elegante para multiples sentencias if y afortunadamente para nosotros, también es soportada en nuestro código Razor.