0

目前我有这个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))

知道如何让这个网格正确显示吗?更进一步,一旦我开始工作,如果我想让它有一个年份的下拉菜单来选择我正在查看的提案年份,我是否会将这个网格代码放入部分视图中?

谢谢您的帮助!

4

1 回答 1

0

在将它传递给视图之前,您还没有枚举您的集合。使用 .ToArray 或 .ToList 在控制器中预枚举您的集合是一种很好的做法,这样您就不会在视图中意外地向它添加位。这意味着您的操作应如下所示:

public ActionResult AcceptedProposals()
{
    var proposals = db.Proposals.Where(p => p.CollegeFundDecision == true).ToArray();
    return View(proposals);
}

这与错误的 ObjectQuery 部分有关(尚未完成并从数据库中检索的集合)。

试试这个,让我知道它是否解决了问题或给你一个更简单的错误消息。

于 2013-06-03T20:06:21.493 回答