如何将我的元组重构为ViewModel

时间:2013-11-26 12:10:54

标签: c# asp.net-mvc mvvm

在上一个question的回复之后,Ben建议我将一个元组转换为一个ViewModel,我想知道下面的情况是否可以做同样的事情。

在这种情况下,我按日期订购不同的订单。在视图中,订单显示在每个日期下方。代码有效,但我认为ViewModel会更合适。

在我的控制器中,我有以下ActionResult:

var dates = db.Orders.Include(o => o.Product)
                     .Where(o => o.UserId == WebSecurity.CurrentUserId && 
                                 o.IsConfirmed == true && 
                                 o.IsSettledWithSalary == false)
                     .GroupBy(o => o.Date)
                     .Select(date => date.FirstOrDefault())
                     .OrderByDescending(x => x.Date);

var orders = db.Orders.Include(o => o.Product)
                      .Where(o => o.UserId == WebSecurity.CurrentUserId && 
                                  o.IsConfirmed == true && 
                                  o.IsSettledWithSalary == false);

return View(Tuple.Create(dates.ToList(), orders.ToList()));

然后在视图中我按如下方式选择此模型:

@model Tuple<List<Models.Order>,List<Models.Order>>

并且可以使用foreach(Model.Item1中的项目)和foreach(Model.Item2中的项目)循环遍历它们。

我正在尝试将其转换为ViewModel,但我不确定如何实现此目标。我当然可以在ViewModel(例如,DatePlusOrderViewModel)中放置日期和订单,然后将其发送到视图,但这不会使它更好。

我希望有人可以向我展示一些关于如何在这种情况下使用ViewModel的良好习惯或建议。

0 个答案:

没有答案