将结果从内部连接linq从控制器返回到视图

时间:2018-01-01 21:26:55

标签: asp.net-mvc linq razor

我试图将这些数据从linq返回到我的视图,但我不确定为什么我会收到此错误。请帮忙

我的控制器 enter image description here

我的观点 enter image description here

错误消息 enter image description here

1 个答案:

答案 0 :(得分:1)

您不能将匿名对象用作强类型视图的视图模型。

您应该创建一个包含这3个属性的视图模型,并在LINQ投影部分中使用它。

public class CustomerCity
{
   public int Id { set; get;}
   public string Ruc { set; get;}
   public string City { set; get;}
}

现在在您的LINQ查询中,不是投射到匿名对象,而是投射到CustomerCity对象。

select new CustomerCity { 
                            Id = cus.Id, 
                            Ruc=cus.ruc, 
                            City=muni.desc_city 
                        }

现在,您的视图应该强烈输入到此视图模型对象的集合

@model IEnumerable<CustomerCity>
<table class="table">
@foreach(var item in Model)
{
   <tr>
       <td>@item.Id</td>
       <td>@item.Ruc</td>
       <td>@item.City</td>
  </tr>
}
</table>