我正在尝试用razor为每3列添加一个新行。但是,在当前代码中,只有前三列被包装成一行,其余的被跳过。我一直在寻找一个修复方法,但似乎没有一个与我的代码一起工作。有人能解决这个问题吗?
@model IEnumerable<Byporten.createpost>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_LayoutClient.cshtml";
}
<div class="container">
@{
var itemCount = 0;
}
@while (itemCount < 3)
{
foreach (var item in Model.Reverse().Take(9))
{
if(itemCount == 0 )
{
@:<div class="row">
}
<div class="col-lg-4 col-md-6 col-sm-6">
<div class="image-section">
<img src="~/images/uploads/@Html.DisplayFor(modelItem => item.ImageURL)"/>
</div>
<div class="title-section">
<h5><span class="fa fa-pencil"></span> @Html.DisplayFor(modelItem => item.Title)</h5>
@Html.ActionLink("Les mer", "viewArticle", new { id = item.Id })
</div>
</div>
itemCount++;
if ((itemCount % 3) == 0)
{
@:</div>
}
}
}
@{itemCount = 0;}
</div>
最佳答案
它将导致无效的标记,因为itemCount == 0
只会出现一次。用if (itemCount == 0)
替换if (itemCount % 3 == 0 || itemCount % 3 == 3)
。
我也会去掉while
循环和底部的itemCount
重置。
关于c# - 如何为Razor mvc5中的每个第三列创建一行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29491835/