【发布时间】:2016-06-01 21:16:56
【问题描述】:
我四处搜索,人们谈论将 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 行与
类型异常 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' 发生在 App_Web_index.cshtml.1bbec3a6.jtomobws.dll 但未在用户中处理 代码
理想情况下,我想把它做成一个班轮。在我看来,我希望能够遍历一组属性包,并提取学生和课程字段。所以我的属性包将包含属性 Student 和 Course,它们是它们的集合。我看过很多类似的帖子,但没有人这样做
谢谢 托马斯
【问题讨论】:
-
不要使用
dynamic!创建具有属性Student和Course的视图模型。 -
谢谢,你可能是对的,我看到了很多建议。无论如何,为了学习,我对如何使用动态来实现这一点很感兴趣。
标签: c# asp.net asp.net-mvc linq expando