C# 控制<;部门>;foreach循环中显示的标记

C# 控制<;部门>;foreach循环中显示的标记,c#,asp.net-mvc,asp.net-core,razor-pages,C#,Asp.net Mvc,Asp.net Core,Razor Pages,我正在用asp.net核心razor页面构建一个电子商务网站,目前我正在构建产品页面。我希望能够控制每行显示的标记的数量。我目前的代码只是尽可能地压缩(这是我所期望的),我只是不知道如何控制它。非常感谢您的帮助 <div class="container"> <div class="row"> @foreach (var item in Model.Products) { <div class="col-sm">

我正在用asp.net核心razor页面构建一个电子商务网站,目前我正在构建产品页面。我希望能够控制每行显示的
标记的数量。我目前的代码只是尽可能地压缩(这是我所期望的),我只是不知道如何控制它。非常感谢您的帮助

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

@foreach(Model.Products中的var项)
{
@DisplayFor(modelItem=>item.Name)
}


其中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>

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

您能详细解释一下“希望能够控制每行的数量”是什么意思吗?我看到你在使用引导。Bootstrap4网格系统,即row和col,使用flex box设计。您在foreach循环中使用的方式和您使用的css类“col-sm”将设置每个产品的宽度,就像您所说的“尽可能地挤压”一样。如果你真的想控制每行显示多少产品,你必须使用媒体断点来设置每个产品面板的宽度。是的,这就是我的意思。例如,显示了5种产品。我想做什么,而不是一切被挤进div行。很抱歉,我没有正确地解释它!
Model.Products.OrderBy(p => p.PropertyToOrderBy).Take(DivMaxAmount)