如何在剃刀视图中实现此嵌套分组?
这就是我试过的
控制器
public ActionResult SeniorityList()
{
var employee = db.Employees.GroupBy(f => f.Facility.FacilityName).ToList();
return View(employee.ToList());
}
但是,我不知道如何在视图中实现foreach
循环
答案 0 :(得分:1)
由于您需要分组数据,我建议您为该
创建一个新类public class GroupedItem
{
public string GroupName { set; get; }
public IEnumerable<Employee> Items { set; get; }
}
现在,您可以在db.Employees
集合上使用GroupBy方法,并将结果投影到GroupedItem类对象的集合。
var grouped = db.Employees
.GroupBy(f => f.Facility.FacilityName,i=>i,
(key,v)=>new GroupedItem { GroupName = key,Items = v})
.ToList();
return View(grouped);
grouped
变量的类型将是GroupedItem
的列表,我们将其传递给视图。因此,请确保您的视图是强类型为GroupedItem
类的集合。
@model IEnumerable<GroupedItem>
@foreach (var group in Model)
{
<h3>@group.GroupName</h3>
foreach (var p in group.Items)
{
<p>@p.Name</p>
}
}