使用参数传递查询以进行查看

时间:2014-03-23 23:16:19

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

控制器:

 public ActionResult Univ(short id) {

        var db = new DbEntities();

        var query = from u in db.Universitates
                     join f in db.Facultates on u.IDUniv equals f.IDUniv
                     join s in db.Specializares on f.IDFac equals s.IDFac
                     where u.IDUniv == id
                     select new SearchViewModel
                     {
                         NumeUniv = u.NumeUniv,
                         OrasUniv = u.OrasUniv,
                         IDUniv = u.IDUniv,
                         NumeFac = f.NumeFac,
                         NumeSpec = s.NumeSpec
                     };

        return View(query);
    }

查看:

@model Proj.Models.SearchViewModel

<h3>@Model.NumeUniv</h3>

我有以下错误:

传递到字典中的模型项的类型为
'System.Data.Entity.Infrastructure.DbQuery`1 [Proj.Models.SearchViewModel]',
但是这个字典需要一个'Proj.Models.SearchViewModel'类型的模型项。

为什么会这样?

1 个答案:

答案 0 :(得分:1)

当您的视图仅查找单个SearchViewModel时,查询将返回SearchViewModel的可枚举列表。

请尝试return View(query.First());