這個嵌套分組如何在剃刀視圖中實現?如何在剃刀視圖中使用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實現有一個特定的標籤。 –