asp.net-mvc - 在循环/foreach MVC View 中动态生成表

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

我现在正在编写一些非常糟糕的代码,在我保存它之前我希望得到一些改进它的意见。我正在尝试构建一个 html 表,每行包含三个单元格。如果集合有 5 个项目,那么它应该呈现为两行。

到目前为止,我所写的代码并不是很健壮,需要不断维护,但我不确定是否有其他工具/方法可以完成这项任务。

<table>
    @foreach (VideosModel item in Model)
    {
        if (cellCount == 0 || cellCount == 3)
        { 
            @Html.Raw("<tr>") 
        }
           <td style="padding:0px 20px;">
                @item.VideoTitle <br />
                <a href="@item.VideoUrl" target="_blank">
                    <img src="../../.../Video.jpg" /> <br />
                </a>
                @item.VideoDescription
                <br />
            </td>

        cellCount++;

        if (cellCount == 3 || cellCount == 6)
        { 
            @Html.Raw("</tr>") 
        }

        if (cellCount > 3) { cellCount = 0; }
    }
</table>

最佳答案

您应该考虑使用模而不是将 cellCount 的值与 0、3 或 6 进行比较:

<table>
    @foreach (VideosModel item in Model)
    {
        if (cellCount % 3 == 0)
        { 
            @:<tr>
        }
           <td style="padding:0px 20px;">
                @item.VideoTitle <br />
                <a href="@item.VideoUrl" target="_blank">
                    <img src="../../.../Video.jpg" />
                </a><br />
                @item.VideoDescription
                <br />
            </td>

        cellCount++;

        if (cellCount % 3 == 0)
        { 
            @:</tr>
        }
    }
</table>

关于asp.net-mvc - 在循环/foreach MVC View 中动态生成表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20506432/

相关文章:

ASP.NET [ScriptIgnore] 不适用于相关对象

c# - Action 方法参数的继承

ASP.NET MVC 应用程序设置 loginUrl 接受

c# - .NET MVC 路由 - 绑定(bind) 2 个 routeMap 参数

jquery - 根据以前的下拉列表更新下拉列表

css - xHTML/CSS : How to make inner div get 100% width minus another div width

html - 可滚动背景上的固定栏 : CSS

html - 强制浏览器专注于特定元素

asp.net-mvc-3 - 为什么单元测试使用 mstest 命令行失败,但在 VS2010 Professional 中却没有?

asp.net-mvc-3 - IE 浏览器 int 字段上的 DropDownList 的客户端验证失败