Asp.net n项显示在3列逻辑中

Asp.net n项显示在3列逻辑中,asp.net,asp.net-mvc,logic,Asp.net,Asp.net Mvc,Logic,我有n个项目。我想在查看页面的3列中显示它 @foreach (var x in ViewBag.list) { <tr><td>@x.Name</td></tr> } @foreach(ViewBag.list中的变量x) { @x、 名字 } 但我想在3列中展示它 <tr><td>@x.Name</td><td>@x.Name</td><td>@x.Name</t

我有n个项目。我想在查看页面的3列中显示它

@foreach (var x in ViewBag.list)
{
<tr><td>@x.Name</td></tr>
}
@foreach(ViewBag.list中的变量x)
{
@x、 名字
}
但我想在3列中展示它

<tr><td>@x.Name</td><td>@x.Name</td><td>@x.Name</td></tr>
@x。Name@x.Name@x、 名字

那么这样做的逻辑是什么呢?有人帮我吗。

不管怎样,这对我很有用

  @{
            int count = 0;
            var tr = new HtmlString("<tr>");
            var trclose = new HtmlString("</tr>");
            <div class="panel-body noPad">
                <table class="table table-hover pdSbasic">
                    <tr>
                        @foreach (var pd in ViewBag.PDList)
                        {
                            <td><input type="checkbox" class="form-control" /></td>
                            <td><input type="hidden" class="pdId" value="@pd.PollidutId" />@pd.PollidutName</td>
                            count++;

                            if (count % 3 == 0)
                            {
                                @tr;
                                @trclose; 
                            }
                        }
                    </tr>
                </table>
            </div>
        }
@{
整数计数=0;
var tr=新的HtmlString(“”);
var trclose=新的HtmlString(“”);
@foreach(ViewBag.PDList中的var pd)
{
@pd.PollidutName
计数++;
如果(计数%3==0)
{
@tr;
@trclose;
}
}
}

您可以使用两个for循环来完成此操作。一个用于行,一个用于列:

@for (var row = 0; row < ViewBag.list.Count(); row++)
{
    <tr>
        @for (var col = 0; (col + row * 3)< ViewBag.list.Count() && col < 3; col++)
        {
           <td>@ViewBag.list.ElementAt(row * 3 + col).Name</td>
        }
    </tr>
}
for(var row=0;row
如果您想更改每行
td
元素的数量,只需将
3
替换为不同的变量或硬代码即可。

看看这是否有帮助。重复?如何根据我的情况采用此代码@对于(int i=0;我是从Mike comment中找到的。它给出了以下错误System.Collections.Generic.List”不包含“elementAtmy backend code var pdlist=new List(500);pdlist=(从a in context.EMPLOYEES在a.PERSON_ID等于b.PERSON_ID,其中a.SUPERVISOR_ID==empId选择新Pollidut.Models.Pollidut{PollidutId=a.EMPLOYEE_ID,})。ToList();ViewBag.PDList=PDList;抱歉,方法名称中有一个输入错误。它是这样的方法:。我将更正代码。再次{“'System.Collections.Generic.List'不包含'ElementAt'”的定义。}您需要为
System.Linq
,或者您可以只使用
@ViewBag.List[row*3+col]
相反。您没有指定
@ViewBag.list
的类型,这就是为什么我使用
ElementAt
方法处理列表、数组和IEnumerables(如果包括using语句)。