如何使用单个对象在Mvc WebGrid中显示两列

3

我对 MVC 不太熟悉,我想在一个 WebGrid 中以下面的方式显示用户的姓名。

enter image description here

目前,Web Grid 以以下格式显示数据。

enter image description here

我将我的 WebGridList<string> 绑定,该列表包含用户名。

我的控制器

public ActionResult Index()
{ 
    List<string> userList = new List<string>();
    userList.Add("User1");
    userList.Add("User2");
    userList.Add("User3");
    userList.Add("User4");
    return View(userList);
}

我的Cshtml

@using (Html.BeginForm())
{
    var grid = new WebGrid(Model);
    @grid.GetHtml(columns: grid.Columns(grid.Column(format: (item) => item)));
}

所以你的意思是每两个用户之后就要换行,对吗?如果你有6行,那么总共会有三行,对吗? - RBT
你为什么不在表格中显示任何标题? - RBT
我有一种感觉,webGrid 不是一个正确的选择。在你的列表中,每个字符串代表一条记录,本质上就是一行。你应该编写简单的循环,并使用表格 HTML 元素来获得所需的结果。 - RBT
谢谢您的回复。正确的做法是,在每两条记录后要换行。不显示任何表头,只显示用户是必须的要求。如果您能就如何使用循环在表格中实现所需结果提供建议,这将非常有帮助。 - user2071882
哦,那么这很简单。让我立即添加一个答案。 - RBT
1个回答

1
您所期望的输出并不适合使用WebGrid控件。以下是使用简单for循环在MVC Razor视图中生成表格的逻辑:
@model List<string>
<table >
            @{ 
                for (int i = 1; i <= Model.Count; i++)
                {
                    if (i % 2 != 0)
                    {
                        @:<tr >
                    }
                    <td style="border:solid;">
                            @Model[i - 1]
                    </td>

                     if (i % 2 == 0)
                     {
                         @:</tr>
                     }
                  }
              }
    </table>

我已经添加了一个CSS样式style="border:solid;",只是为了显示所有表格单元格的边框。您可以根据需要自定义它。
此代码创建以下表格:

enter image description here


感谢您提供的解决方案,它确实帮助了我。 - user2071882
太好了!如果这个解决方案解决了您的问题,那么您可以点击投票按钮下面的绿色勾号接受该解决方案。这将有助于社区关注本站未回答的问题。 - RBT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接