【发布时间】:2015-09-08 11:56:04
【问题描述】:
我已经成功地在 webforms 中使用带有两个表的 sql 内连接将两个表连接到一个 html 无序列表。
我正在使用 Asp.net MVC 5 Entityframework 6
我正在尝试在 MVC 中加入相同的两个表以再次输出单个 html 无序列表。
第一个表名为 team,列 id,第二个表名为 teamgallery,列 teamID。 team.id 和 teamgallery.teamID 的值相等。
在控制器中:
dynamic dmodel = new ExpandoObject();
dmodel.Teamre = (from pd in db.teams
join od in db.teamgalleries on pd.id equals od.teamID
where pd.Catresales == "yes"
select new
{
pd.id,
pd.name,
od.picture
}).ToList();
return View(dmodel);
在视图中:
<ul>
@foreach (var teamre in Model.Teamre)
{
<li>
@teamre
</li>
}
</ul>
在网络浏览器中,这会返回一个类似这样的列表:
{ id = 1, name = John Doe, 图片 = picture1.jpg }
{ id = 2, name = Jane Doe, picture = picture2.jpg }
如果我将剃须刀代码更改为仅显示名称:
@teamre.name
我会收到这个错误
“应用程序”中的服务器错误。 “对象”不包含“名称”的定义
即使我写了也会显示错误
name = pd.name,
【问题讨论】:
-
不要声明
dynamic,这里没有理由,直接使用var即可。另外,Teamre在类ExpandoObject中是如何定义的?
标签: asp.net entity-framework join asp.net-mvc-5 entity-framework-6