Sto provando un po 'di tempo cercando di trovare la sintassi corretta per creare un'istruzione switch all'interno di un ciclo foreach sulla mia pagina di visualizzazione di mvc.sintassi del rasoio corretta per l'istruzione switch all'interno di foreach
Ecco l'ultimo tentativo (dopo molti altri) che ho finora ma il motore Razor non lo accetterà. Qui l'errore è proprio al @foreach
e indica che manca una chiusura }
@foreach (var item in Model) {
String s = item.RegistrationStatus.ToString();
// Make sure this mirrors values in RegistrationStatus enum!
switch (s)
{
case "New":
<tr class='info'>
break;
case "Arrived":
<tr class='success'>
break;
default:
<tr>
}
......
}
Il motivo più probabile per cui non funziona è che Razor può solo eseguire il rilevamento automatico C#/HTML quando i tag sono ben formati e chiusi. Se si desidera solo un tag aperto, è necessario utilizzare la sintassi "@:" mostrata dagli altri risponditori. –
Eilon
È solo una cosa personale, ma ho smesso di usare le istruzioni switch in Views qualche tempo fa, dato che compromette la leggibilità. Un metodo di supporto sarebbe meglio imo. In una nota a margine, è anche meglio usare qualcosa come 'Html.Raw' o' MvcHtmlString.Create' perché Razor potrebbe lanciare avvertimenti perché non riesce a trovare i tag di chiusura. – Silvermind