控制foreach循环中显示的<div>标签的数量

时间:2019-03-14 20:14:57

标签: c# asp.net-mvc asp.net-core razor-pages

我正在建立一个带有asp.net核心剃须刀页面的电子商务网站,目前正在建立产品页面。我希望能够控制每行显示的<div>标签的数量。目前,我当前的代码只是尽可能地压缩(我期望如此),我只是不知道如何控制它。非常感谢您的帮助。

<div class="container">
<div class="row">
    @foreach (var item in Model.Products)
    {
        <div class="col-sm">
            @Html.DisplayFor(modelItem => item.Name)
        </div>    
    }
</div>

其中Model.Products包含25种产品的列表

1 个答案:

答案 0 :(得分:1)

您希望如何控制标签数量?

您有最大数量要尊重吗? 如果是这样,您可以尝试仅提取第一个“ DivMaxAmount”项:

@{int DivMaxAmount = 25}
<div class="container">
<div class="row">
    @foreach (var item in Model.Products.Take(DivMaxAmount))
    {
        <div class="col-sm">
            @Html.DisplayFor(modelItem => item.Name)
        </div>    
    }
</div>

此示例将使用集合中的前25个项目创建25个div,但是您可以根据需要更改此数字。

请注意,如果您要保持一致的订购,则可能需要在领取物品之前先订购集合:

Model.Products.OrderBy(p => p.PropertyToOrderBy).Take(DivMaxAmount)

这些方法在System.Linq名称空间中可用。