我四处搜索,人们谈论将 ExpandDo 与动态一起使用,但我无法弄清楚如何使用从 LINQ 查询返回的集合来执行此操作。
我正在两个表(学生和注册)之间对我的数据库进行内部连接
var innerJoin =
from e in db.Enrollments
join s in db.Student on e.StudentID equals s.StudentID
select new { Student= s.Name , Course = e.CourseID };
我试过了
dynamic model = innerJoin.ToList().ToExpando();
return View(model)
我有
@model System.Collections.Generic.IEnumerable<dynamic>
在我的 View.cshtml 的顶部
但是当我尝试导航到 Web 应用程序中的控制器时,会出现此错误:
传入字典的模型项的类型为“System.Dynamic.ExpandoObject”,但此字典需要“System.Collections.Generic.IEnumerable`1[System.Object]”类型的模型项。''
我也试过:
dynamic model = innerJoin.ToList();
return View(model);
但在我看来(.cshtml 文件)我
@foreach (dynamic item in Model)
{
<tr>
<td>
@Html.Raw(item.Course)
</td>
</tr>
}
它会在@Html.Raw 行与
App_Web_index.cshtml.1bbec3a6.jtomobws.dll 中出现“Microsoft.CSharp.RuntimeBinder.RuntimeBinderException”类型的异常,但未在用户代码中处理
理想情况下,我想把它做成一个班轮。在我看来,我希望能够遍历一组属性包,并提取学生和课程字段。所以我的属性包将包含属性 Student 和 Course,它们是它们的集合。我看过很多类似的帖子,但没有人这样做
谢谢托马斯