这个嵌套分组如何在剃刀视图中实现?如何在剃刀视图中使用linq实现GroupBy
这是我曾尝试
控制器
public ActionResult SeniorityList()
{
var employee = db.Employees.GroupBy(f => f.Facility.FacilityName).ToList();
return View(employee.ToList());
}
但是我不知道如何实现鉴于
这个嵌套分组如何在剃刀视图中实现?如何在剃刀视图中使用linq实现GroupBy
这是我曾尝试
控制器
public ActionResult SeniorityList()
{
var employee = db.Employees.GroupBy(f => f.Facility.FacilityName).ToList();
return View(employee.ToList());
}
但是我不知道如何实现鉴于
的foreach
环既然你想要的分组数据,我建议你创建一个新类为
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>
}
}
谢谢,我是新来的网站,请原谅我 – user5771351
这个类可以嵌套groupBy,我的意思是有两个或三个字段分组 – user5771351
没有必要'.ToList()'两次。但是在任何情况下,你都应该对数据进行分组,因此它应该是'.ToDictionary()' - '.GroupBy()'返回一个'IEnumerable>' –
请注意,model-view-controller标签是关于模式的问题。 ASP.NET-MVC实现有一个特定的标签。 –