我有两个表与PrId列连接,我有一个视图,显示两个表中的两列,第一个表的第一列和第二个表的第二列。我的行动结果是:
public ActionResult extrapoints()
{
ViewBag.dList = (from m in _session.customer
join p in _session.Products on m.PrId equals p.PrId
where m.UserId== 'john'
select new { FName = m.FName, price=p.price});
return View();
}
并且在视图中我想显示FName和价格,我有以下视图:
@foreach(ViewBag.dList中的var项) {
<tr>
<td>@item.FName </td>
<td> @item.price</td>
</tr>
} 但显示错误对象'不包含FName的定义,但当我使用没有Fname,价格像
@foreach (var item in ViewBag.dList)
{
<tr>
<td>@item</td>
<td> @item</td>
</tr>
}
显示: {FName = Shailendra,价格= 1000}
如何解决,请帮忙
答案 0 :(得分:0)
您可以将Anonymous类转换为类型类,首先添加此类
class Test
{
public string FName { get; set; }
public decimal price { get; set; }
}
并将你的linq语句作为
ViewBag.dList = (from m in _session.customer
join p in _session.Products on m.PrId equals p.PrId
where m.UserId== 'john'
select new Test{ FName = m.FName, price=p.price});
最后投射视图以输入“Test”
@foreach (var item in (List<Test>)ViewBag.dList)
{
<tr>
<td>@item.Fname</td>
<td> @item.price</td>
</tr>
}