目前我有这个AcceptedProposals
视图,该视图旨在显示来自实体框架的提案列表的详细信息。这是我在控制器中的代码:
public ActionResult AcceptedProposals()
{
var proposals = db.Proposals.Where(p => p.CollegeFundDecision == true);
return View(proposals);
}
在我看来,我有以下几行,但它给了我这个错误:
System.InvalidOperationException:传递给的模型项 字典是类型 'System.Data.Objects.ObjectQuery`1 [URGLibrary.Proposal]',但是这个 字典需要“URGLibrary.Proposal”类型的模型项。
@(Html.Telerik().Grid<Proposal>((IEnumerable<Proposal>)Model))
知道如何能够正确显示此网格吗?更进一步说,一旦我开始工作,如果我想这样做以便选择我正在查看的提案年份有多少年下降,我会将这个网格代码放到局部视图中吗?
感谢您的帮助!
答案 0 :(得分:0)
在将集合传递给视图之前,您还没有枚举它。使用.ToArray或.ToList来预先枚举控制器中的集合是一种很好的做法,这样你就不会在视图中意外地向它添加位。这意味着您的操作应如下所示:
public ActionResult AcceptedProposals()
{
var proposals = db.Proposals.Where(p => p.CollegeFundDecision == true).ToArray();
return View(proposals);
}
这与错误的ObjectQuery部分有关(一个尚未最终确定并从数据库中检索的集合)。
尝试此操作并告诉我它是否可以解决问题或为您提供更简单的错误消息。