Petite astuce du lundi matin. Dans une boucle, j’ai eu besoin d’ouvrir un <Div> et de le fermer ce bloc après plusieurs éléments de la boucle. Or Razor ne semble pas capable de pousser son analyse de balisage selon des conditions du code C#.
@foreach (var item in myObjects)
if (myCondition)
{
<Div>
}
else
{
</Div>
}
// ...
}
if (myCondition)
{
<Div>
}
else
{
</Div>
}
// ...
}
Et bien on ne peut compiler le code. On obtient « Erreur RZ9981 Unexpected closing tag ‘div’ with no matching start tag.«
La petite astuce est d’utiliser soit
@((MarkupString)"<div>")
ou
@:</div>