asp.net mvc linq我想从两个连接表中获取两列

时间:2014-03-06 19:52:32

标签: linq asp.net-mvc-4

我有两个表与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}

如何解决,请帮忙

1 个答案:

答案 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>


}