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

Controlling number of <div> tags shown in foreach loop

我正在构建一个具有 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 种产品的列表

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

你有最大数量限制吗? 如果是这样,您可以尝试只拿前 "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 命名空间中可用。