Asp.net net mvc将两个表连接到html无序列表中的单个列表项

Asp.net net mvc将两个表连接到html无序列表中的单个列表项,asp.net,entity-framework,join,asp.net-mvc-5,entity-framework-6,Asp.net,Entity Framework,Join,Asp.net Mvc 5,Entity Framework 6,我在webforms中成功地使用了一个sql内部联接和两个表,将两个表联接到一个html无序列表中 我正在使用Asp.net MVC 5 Entityframework 6 我试图在MVC中连接相同的两个表,以再次输出单个html无序列表 第一个表名为team,列id为;第二个表名为teamgallery,列id为。team.id和teamgallery.teamID的值相等 在控制器中: dynamic dmodel = new ExpandoObject(); dmodel.Teamre =

我在webforms中成功地使用了一个sql内部联接和两个表,将两个表联接到一个html无序列表中

我正在使用Asp.net MVC 5 Entityframework 6

我试图在MVC中连接相同的两个表,以再次输出单个html无序列表

第一个表名为team,列id为;第二个表名为teamgallery,列id为。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>
我会收到这个错误

“”应用程序中的服务器错误。 “对象”不包含“名称”的定义

即使我写了,也会显示错误

name = pd.name, 
还有剃刀

<ul>
    @foreach (var teamre in Model.Teamre)
    {
        <li>
            @teamre.name
        </li>
    }
</ul>
    @foreach(Model.teamre中的var teamre) {
  • @团队名称
  • }
应该这样做
<ul>
@foreach (var teamre in dmodel.Teamre)
{
    <li>
        @teamre.name
    </li>
}
@foreach(dmodel.teamre中的var teamre) {
  • @团队名称
  • }


    我认为您使用了错误的集合进行迭代…请参见上面我的代码更改。

    谢谢,为名称和图片添加了ViewModel解决了此问题

        public string picture { get; set; }
        public string name { get; set; }
    

    不要声明它
    dynamic
    ,这里没有理由这样做,只需使用
    var
    。另外,如何在类
    ExpandoObject
    中定义
    Teamre
    <ul>
    @foreach (var teamre in dmodel.Teamre)
    {
        <li>
            @teamre.name
        </li>
    }
    
        public string picture { get; set; }
        public string name { get; set; }