Foreach循环不在@ Html.DisplayFor中的项目之间显示空格

时间:2015-07-24 07:08:05

标签: javascript jquery html css asp.net-mvc

我在这里看到了一些类似的问题并试过了,但解决方案似乎并不能解决我的问题。

正如您在我的观点中看到的,我在@Html.DisplayFor循环中有一个Foreach,此显示会显示某个部分中的所有GroupID,但不会显示" 1 2 3 4 5"它将显示" 12345"。

表格中的第二行(@Html.DisplayFor(model => item.Group))是存在问题的地方(行具有展开/折叠功能)。

查看

<table>
     <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td class="col-md-1">+</td>
                <td class="col-md-2">@Html.DisplayFor(model => item.Name)</td>
            </tr>

            <tr>
                <td class="col-md-1" colspan="3"><p style="display:none">@Html.DisplayFor(model => item.Group)</p></td>
            </tr>
        }
     </tbody>
</table>

下面我已经制作了一个简单的JSFiddle,因此更容易想象我正在谈论的是什么。在此先感谢您的帮助,如果您需要更多信息,请询问。 的 JSFiddle

修改 我在下面添加了控制器以显示Group是什么。

public ActionResult SectionTable()
        {
            Manager manager = new Manager();
            var data3 = manager.GetAllSections();
            var groups = manager.GetAllGroups();
            var sectionDetails = from u in data3

                               select new SectionDetail
                               {
                                   SectionID = u.Id,
                                   Name = u.Name,
                                   Description = u.Description,
                                   Group = (from g in groups
                                           where g.SectionId == u.Id
                                           select new GroupDetail() { GroupID = g.Id, GroupDescription = g.Description, GroupName = g.Name, GroupSectionID = g.SectionId, Rights = g.Rights, RightsID = g.RightsId, SectionName = g.SectionName }).ToList()


                               };
            return View(sectionDetails.ToList());
        }

1 个答案:

答案 0 :(得分:1)

在第二行中,您需要包含嵌套的foreach块,并在Group元素内呈现每个<span>,例如

<table>
 <tbody>
    @foreach (var item in Model)
    {
      <tr>
        <td class="col-md-1">+</td>
        <td class="col-md-2">@Html.DisplayFor(model => item.Name)</td>
      </tr>
      <tr>
        <td class="col-md-1" colspan="3">
          @foreach(var group in item.Group)
          {
            <span class="group">@group.GroupID</span> // add class name if you want additional spacing
          }
        </td>
      </tr>
    }
  </tbody>
</table>

然后根据您想要的间距,您可以使用.css

.group {
  display: inline-block;
  margin: 0, 10px;
}

附注:由于属性Group是一个集合,我建议您使用传统的命名做法,并将您的属性重命名为Groups(复数)