来自IQueryable的Foreach

时间:2019-08-04 12:14:55

标签: c# model-view-controller

这在我的控制器中:

public ActionResult Index()
{
        var groupJoin = from d in db.tblParent1
                        join e in db.tblParent2 on d.parent1ID equals e.parent1ID
                        select new
                        {
                            parent1ID = d.parent1ID,
                            parent1Name = d.parent1Name,
                            parent2ID = e.parent2ID,
                            parent2Name = e.parent2Name,
                        };
        ViewBag.groupJoin = groupJoin.ToList();
        return View();
}

这是我的观点:

@foreach (var item in ViewBag.groupJoin)
{
    <tr>
         <td>
                @item.parent1Name
         </td>
         <td>
                @item.parent2Name
         </td>
   </tr>
}

我收到此错误:

  

对象不包含parent1Name

的定义

@item.parent1Name替换为@item时。它在网络上显示整个行

{ parent1ID = 1, parent1Name = master , parent2ID = 2, parent2Name = child }

如何指定列?

1 个答案:

答案 0 :(得分:3)

定义这样的类

public class Result
{
   public int parent1ID    { get; set; }
   public string parent1Name  { get; set; }
   public int parent2ID    { get; set; }
   public string parent2Name  { get; set; }
}

然后执行以下操作

var groupJoin = from d in db.tblParent1
                    join e in db.tblParent2 on d.parent1ID 
equals e.parent1ID
                    select new Result
                    {
                        parent1ID = d.parent1ID,
                        parent1Name = d.parent1Name,
                        parent2ID = e.parent2ID,
                        parent2Name = e.parent2Name,
                    };