我在这里看到了一些类似的问题并试过了,但解决方案似乎并不能解决我的问题。
正如您在我的观点中看到的,我在@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());
}
答案 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
(复数)