我正在尝试用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/

10-10 09:41