html - 表内逻辑。对于格式化的每个循环

标签 html asp.net-mvc asp.net-mvc-3 razor html-table

有没有一种方法可以将 tds 限制为 4 或以下设置中的任何数字......请参阅下面的代码。现在,它在一行中显示所有模型项目(根据代码应该如此)。如果项目是一打,它们都显示在一行中。我想要一种方法来在每一行中显示这四个而不是在一行中显示所有...(我是在谈论表中的表吗?)这可以吗完成了吗?

<table>
  <tr>
       @foreach (var item in Model)
       {
            <td>     
                 @Html.DisplayFor(modelItem => item.fld1)
                 @Html.DisplayFor(modelItem => item.fld2)                       
            </td>      
       }
  </tr>
</table>

最佳答案

你可以将它们分组:

@{
    var chunkSize = 4;
    var groupedResult =
        from i in Model.Select((value, index) => new { Value = value, Index = index })
        group i.Value by i.Index / chunkSize into g
        select g;
}

<table>
    @foreach (var result in groupedResult)
    {
        <tr>
            @foreach (var item in result)
            {
                <td>
                    @Html.DisplayFor(modelItem => item.fld1)
                    @Html.DisplayFor(modelItem => item.fld2)  
                </td>
            }
        </tr>
    }
</table>

很明显,您需要这样做意味着您的 View 模型不适合此 View 。因此,调整它并在您的 Controller 操作中执行此分组。然后您的 View 将变得简单且可读,而不是像一些意大利面条代码。

关于html - 表内逻辑。对于格式化的每个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7067479/

相关文章:

javascript - 转换元素在 Bootstrap 中不起作用

html - 从高度0到100的过渡元素,从底部开始

javascript - 将数组和表单数据发送到 Controller - MVC Ajax

jquery - 检查是否选中了单选框

javascript - 在 Firefox 中使用 jQuery(用户脚本)添加表单链接

asp.net-mvc - ASP.NET MVC4 - 具有 actionLinks 的 2 个 Controller 的不同路由

c# - EF 使用新引用更新现有实体并获取违反唯一键约束

c# - ASP.NET MVC 3 使用升序、降序选项自定义排序 WebGrid

javascript - 将 2 个参数传递给 Asp.net mvc3 中 Telerik 网格的 ClientTemplate 函数

asp.net-mvc-3 - 从自定义授权属性访问角色