如何将两个查询从in传递到一个视图

时间:2013-03-15 09:31:02

标签: asp.net-mvc asp.net-mvc-4

我希望将这两种方法传递给一个视图:

 public IEnumerable<ProfitAndCostViewModel> getProfitSum()
        {
            var profBalance = db.Profits
   .Where(x => x.IdUser.UserId == WebSecurity.CurrentUserId)
   .GroupBy(x => x.IdUser.UserId)
   .Select(x => new ProfitAndCostViewModel { ProfitSum = x.Sum(y => y.Value) })
   .ToList();
            return profBalance;
        }

        public IEnumerable<ProfitAndCostViewModel> getCostSum()
        {
            var costBalance = db.Costs
   .Where(x => x.IdUser.UserId == WebSecurity.CurrentUserId)
   .GroupBy(x => x.IdUser.UserId)
   .Select(x => new ProfitAndCostViewModel { CostSum = x.Sum(y => y.Value) })
   .ToList();
            return costBalance;
        }

在我的ActionResult中我有这个:

var pcv = new ProfitAndCostViewModel();
            pcv.ProfModel =getProfitSum();
            pcv.CostModel =getCostSum();

             return View(pcv);

在ProfitAndCostViewModel代码是这样的:

public double ProfitSum { get; set; }
        public double CostSum { get; set; }
        public double FinalBalance { get; set; }
        public IEnumerable<ProfitAndCostViewModel> ProfModel { get; set; }
        public IEnumerable<ProfitAndCostViewModel> CostModel { get; set; }

这是错误:The model item passed into the dictionary is of type 'WHFM.ViewModels.ProfitAndCostViewModel', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable 1 [WHFM.ViewModels.ProfitAndCostViewModel]&#39; .`

1 个答案:

答案 0 :(得分:3)

您的观点看起来强烈类型为IEnumerable<ProfitAndCostViewModel>

@model IEnumerable<ProfitAndCostViewModel>

但是你在这里传递一个ProfitAndCostViewModel个实例:

var pcv = new ProfitAndCostViewModel();
pcv.ProfModel =getProfitSum();
pcv.CostModel =getCostSum();
return View(pcv);

因此,您应该修复键入视图的模型:

@model ProfitAndCostViewModel