我在php中看到了一种方法,但是我使用的是剃刀代码。我需要每4个循环插入一个封闭行和一个开放行标签。但是我使用的主循环是一个foreach,实际上并没有给我一个很好的变量来使用mod。这就是我所拥有的。能给我个快速解决方案吗?我敢肯定这很简单。 这就是我所拥有的:
<tbody>
<tr align="center">
@foreach (var item in Model)
{ @for (int loops = 1; loops < 6; loops++)
{
<td>
<img src="@Html.DisplayFor(modelItem => item.PicUrl)" height="100" /><br />
<b>@Html.DisplayFor(modelItem => item.Name)</b><br />
@Html.DisplayFor(modelItem => item.Description)<br />
<a asp-action="Edit" asp-route-id="@item.Id">Edit</a> |
<a asp-action="Details" asp-route-id="@item.Id">Details</a> |
<a asp-action="Delete" asp-route-id="@item.Id">Delete</a>
</td>
}
}
</tr>
</tbody>
不幸的是,正如您可能想像的那样,此代码只是将5张同一张照片放在5张下一张照片之前,并且全部放在一行中。
答案 0 :(得分:1)
已更新为计数器和mod
@{int counter = 0;}
<tbody>
<tr align="center">
@foreach (var item in Model)
{
<td>
<img src="@Html.DisplayFor(modelItem => item.PicUrl)" height="100" /><br />
<b>@Html.DisplayFor(modelItem => item.Name)</b><br />
@Html.DisplayFor(modelItem => item.Description)<br />
<a asp-action="Edit" asp-route-id="@item.Id">Edit</a> |
<a asp-action="Details" asp-route-id="@item.Id">Details</a> |
<a asp-action="Delete" asp-route-id="@item.Id">Delete</a>
</td>
counter++;
if (counter % 5 == 0)
{
@:</tr><tr>
}
}
</tr>
</tbody>
我认为counter % 5
逻辑需要引起注意,以确保其按预期工作。