首先让我说我知道还有其他方法可以做到这一点,而且我已经成功地通过其他方式做到了。但我想知道如何@model IEnumerable<dynamic>
在视图中使用。
我在控制器中试过这个:
var result = from p in _db.People
join ps in _db.PersonSport on p.PersonId equals ps.PersonIdfk
join s in _db.Sports on ps.SportCodeFk equals s.SportCode
orderby s.SportName
where p.LastName == "Orr"
select new { p.FirstName, p.LastName, s.SportName };
return View(result);
鉴于此:
@model IEnumerable<dynamic>
<h4>Sports played by @Model.First().FirstName @Model.First().LastName:</h4>
@foreach (var item in Model) {
@item.SportName;<br />
}
我得到一个运行时错误
RuntimeBinderException:“对象”不包含“名字”的定义
断点<h4>
显示模型具有数据:
我尝试使用创建结果作为 anew ExpandoObject()
并得到相同的错误。
我是在这里偏离基地还是在尝试一些不可能的事情?我在考虑一个用例,您有许多表列但只提取了一些列。是的,我知道我可以创建一个类并这样做,或者在 ViewModel/ViewData 中发送数据,但想知道这是否是一个选项。