This article is currently in the process of being translated into French (~99% done).
The switch statement
Nous avons précédemment utilisé les instructions if dans notre code Razor pour contrôler le flux de code, mais elles ne sont pas les seules instructions disponibles lorsque vous écrivez du code Razor. Des alternatives existes, sous la forme des instructions switch. Vous le connaissez peut-être du C# ou d'autres langages de programmation, mais dans cet article, nous verrons comment vous pouvez l'utiliser dans votre code Razor.
Une instruction switch fonctionne en définissant une condition à évaluer puis ensuite un ou plusieurs cas possibles dépendants de cette évaluation. Si par exemple nous avons un numéro spécifié par l'utilisateur dans une variable et que nous voulons associer différentes actions en fonction de cette valeur, cela pourrait ressembler à ceci avec une instruction switch :
switch(number)
{
case 1:
// Do something for number 1
break;
case 42:
// Do something for number 42
break;
}
Une instruction switch Razor est semblable à celle en C#, mais avec une importante différence : vous pouvez inclure de l'HTML directement dans les blocs de cas, ce qui vous permet facilement d'afficher des balises et du texte pour chaque cas. Aussi, à moins que vous soyez déjà à l'intérieur d'un bloc de code Razor, vous devrez faire précéder le mot-clé switch avec un caractère @, comme nous l'avons vu dans les exemples précédents. Voici un exemple complet 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;
}
Dans cet exemple, nous examinons la propriété DayOfWeek trouvée sur la structure DateTime.Now. Cela nous permettra de connaître le jour actuel et de réagir en conséquence. J'illustre plusieurs façons d'utiliser l'instruction case dans cet exemple : Par exemple, Monday et Friday sont spécifiés comme des résultats distincts. Ensuite nous avons Saturday et Sunday qui utilisent le même bloc de cas (une belle fonctionnalité de l'instruction switch) et pour finir nous utilisons le mot-clé default pour indiquer un bloc de cas général pour gérer toutes les autres conditions.
Résumé
Dans beaucoup de langages de programmation, l'instruction switch est une alternative élégante aux multiples instruction if et, par chance, elle est aussi supportée dans le code Razor.