Le Plus Simple Si/D'Autre Syntaxe Razor
Je suis en train de faire un simple if/Else dans un foreach avec ce code:
@{
var count = 0;
foreach (var item in Model)
{
if (count++ % 2 == 0)
{
@:<tr class="alt-row">
} else {
@:<tr>
}
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.Truncate(item.Details, 75)
</td>
<td>
<img src="@Url.Content("~/Content/Images/Projects/")@item.Images.Where(i => i.IsMain == true).Select(i => i.Name).Single()"
alt="@item.Images.Where(i => i.IsMain == true).Select(i => i.AltText).Single()" class="thumb" />
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.ProjectId }) |
@Html.ActionLink("Details", "Details", new { id = item.ProjectId }) |
@Html.ActionLink("Delete", "Delete", new { id=item.ProjectId })
</td>
</tr>
}
}
J'obtiens une erreur d'analyse "Rencontré balise de fin "tr" avec l'absence de correspondance balise de début. Sont votre de début/fin des balises correctement équilibré?". Semble comme si l'instruction ne veux pas de travail.
Vous devez vous connecter pour publier un commentaire.
Juste de les utiliser pour la balise de fermeture:
Et laissez votre si/d'autre comme il est.
Il fonctionne très bien. Vous travaillez en 2 langues-les espaces ici, il semble bon de ne pas diviser ouvrir/fermer les sandwichs au-delà de la frontière.
Je voudrais juste aller avec
Ou encore mieux
cela va vous donner des lignes comme
<text>
balise là?Un peu hors sujet, peut-être, mais pour les navigateurs modernes (IE9 et plus récents), vous pouvez utiliser le css pair/impair sélecteurs pour atteindre ce que vous voulez.
ou
Pour se débarrasser de la si/d'autre embarras que vous pourriez utiliser à l'aide d'un bloc:
Réutilisables élément qui font qu'il est plus facile d'ajouter des attributs:
Méthode d'aide à rendre la syntaxe razor plus clair: