J'ai un problème avec l'instruction IF dans MVC View. J'essaie de l'utiliser pour créer une ligne pour tous les trois éléments.
<div class="content">
<div class="container">
@if (ViewBag.Articles != null)
{
int nmb = 0;
foreach (var item in ViewBag.Articles)
{
if (nmb % 3 == 0) {
<div class="row">
}
<a href="@Url.Action("Article", "Programming", new { id = item.id })">
<div class="tasks">
<div class="col-md-4">
<div class="task important">
<h4>@item.Title</h4>
<div class="tmeta">
<i class="icon-calendar"></i> @item.DateAdded - Pregleda:@item.Click
<i class="icon-pushpin"></i> Authorrr
</div>
</div>
</div>
</div>
</a>
if (nmb % 3 == 0) {
</div>
}
}
}
</div>
</div>
Il vous suffit de préfixer une instruction if
avec @
si vous n'êtes pas déjà dans un bloc de code de rasoir.
Edit: Vous avez un problème avec votre code en ce moment.
Vous déclarez nmb
, mais ne faites jamais rien avec la valeur. Vous devez donc déterminer ce que vous êtes censé faire. Afin de corriger votre code, vous devez effectuer quelques petites modifications:
@if (ViewBag.Articles != null)
{
int nmb = 0;
foreach (var item in ViewBag.Articles)
{
if (nmb % 3 == 0)
{
@:<div class="row">
}
<a href="@Url.Action("Article", "Programming", new { id = item.id })">
<div class="tasks">
<div class="col-md-4">
<div class="task important">
<h4>@item.Title</h4>
<div class="tmeta">
<i class="icon-calendar"></i>
@item.DateAdded - Pregleda:@item.Click
<i class="icon-pushpin"></i> Authorrr
</div>
</div>
</div>
</div>
</a>
if (nmb % 3 == 0)
{
@:</div>
}
}
}
La partie importante ici est le @:
. C'est un raccourci de <text></text>
, qui est utilisé pour forcer le moteur de rasoir à rendre le texte.
Une autre chose, la norme HTML spécifie que les balises a
ne peuvent contenir que des éléments en ligne, et en ce moment, vous placez un div
, qui est un élément de niveau bloc, à l'intérieur d'un a
.
Chaque fois que vous utilisez la syntaxe html, vous devez démarrer la prochaine instruction razor avec un @. Il devrait donc s'agir de @if ....