簡體   English   中英

MVC Linq使用GroupBy Min Max並返回視圖

[英]MVC Linq using GroupBy Min Max and returning view

我有一張桌子,需要按預定的日期分組,我需要該組返回最小開始日期和最大結束日期,我需要幾天的總和。 我寫了以下內容:

        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#,所以它可能很簡單! 我希望這很清楚-我不知道什么是重要的。

您不應該返回任何鼠標類型

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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM