使用linq从两个表(join)中获取数据并将结果返回到视图中

时间:2011-03-04 19:53:04

标签: asp.net asp.net-mvc-3 razor

我想从Courses表中获取Projects(具有CourseId)和相关CourseName的数据。

我写了以下代码:

var projects = from n in db.Projects
                       join c in db.Courses on n.CourseId equals c.ID
                       orderby n.Name
                       select new { Project = n, Course = c };

        return View(projects.ToList());

我收到错误:

  

传递到字典中的模型项的类型为'System.Collections.Generic.List 1[<>f__AnonymousType2 2 [ProjectManager.Models.Project,ProjectManager.Models.Course]]',但此字典需要模型项类型为'System.Collections.Generic.IEnumerable`1 [ProjectManager.Models.Project]'。

我需要在Controller和View中做些什么来显示这些数据?

1 个答案:

答案 0 :(得分:0)

您将匿名类型传递到视图中,但视图被声明为IEnumerable<Project>

您应该从视图中删除@model声明,以使其使用dynamic模型。