从foreach循环中创建表行?

时间:2013-02-05 21:20:00

标签: c# razor asp.net-mvc-4

我已经坚持了一段时间了;我正在将ASP.NET MVC 4C#用于网络应用程序。我从我的控制器读取了一个Excel文件,我有List个我发送回view的所有单元格。这就是我正在使用的:

<table>
@foreach (var item in ViewBag.range)
{ 
    <tr>
    @for (int i = 0; i < 6; i++) 
    {
        <td>
            <input style="width:50px;" value=@item />
        </td>
    }
    </tr>
}
</table>

基本上,Excel中有6列。我正在尝试在Excel中重新创建view。 但是我的for loop出了问题,它正在对每个单元格做6次。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

这样做是因为你在for循环中告诉它。也许你应该删除它。

<table>
 <tr>
  @foreach (var item in ViewBag.range)
  { 

    <td>
        <input style="width:50px;" value=@item />
    </td>

  }
 </tr>
</table>

修改

这会将range内的项目放入每行有6列的行中。

@{
 int total = 0; 
}

<table>
  @foreach (var item in ViewBag.range)
  { 
    if( total % 6 == 0 ){
        @:<tr>
    }
    <td>
        <input style="width:50px;" value=@item />
    </td>
    if( total+1 % 7 == 0 ){
        @:</tr>
    }
    total++;
  }
</table>

答案 1 :(得分:0)

由于我没有足够的关于范围的信息....我做了以下假设;修改并使用它

 @{var counter=0}
    <table>
          <tr>
    @foreach (var item in ViewBag.range)
    { 
         counter++;
        <td>
            <input style="width:50px;" value=@item />
        </td>
         if(counter%6==0)
         {
           @:</tr>
            if(counter<ViewBag.range.Count)
            {
             @:<tr>
               }
         }

    }
    </table>