我有一张桌子,需要GroupBy一个日期tBooked 我需要该组返回Min StartDate和Max EndDate 我需要一天的总和。 我写了以下内容:
var model = _db.AnnualLeaves.Where(r => r.StafferId == stafferId)
.GroupBy(r => r.tBooked)
.Select(m => new
{
start = m.Min(r => r.StartDate),
end = m.Max(r => r.EndDate),
daycount = m.Sum(r => r.Days)
});
我似乎无法让模型在视图中返回。我已经尝试了各种各样的foreach但是我一直没有犯错误。
如果我使用以下内容创建视图:
@foreach (var item in ViewData.Model)
{
@item
}
视图呈现:
{ start = 15/10/2014 00:00:00, end = 21/10/2014 00:00:00, daycount = 5 }
{ start = 28/06/2015 00:00:00, end = 03/07/2015 00:00:00, daycount = 4.5 }
购买我无法将@item.start
放到页面上。
我已尝试创建模型,并将上述var model
更改为IEnumerable
以对照下面的模型。
public class ListLeaveModel
{
public DateTime start { get; set; }
public DateTime end { get; set; }
public double daycount { get; set; }
}
我现在似乎只是绕圈子走了。我刚开始使用MVC和C#所以它可能非常简单!我希望这很清楚 - 我不知道什么是重要的。
答案 0 :(得分:1)
你不应该返回任何鼠标类型
var model = _db.AnnualLeaves.Where(r => r.StafferId == stafferId)
.GroupBy(r => r.tBooked)
.Select(m => new ListLeaveModel
{
start = m.Min(r => r.StartDate),
end = m.Max(r => r.EndDate),
daycount = m.Sum(r => r.Days)
});
return View(model.ToList());
视图:
@model IList<ListLeaveModel>
@foreach (var item in Model)
{
@item.start
}