【问题标题】:asp.net mvc linq I want to fetch two columns from two join tableasp.net mvc linq 我想从两个连接表中获取两列
【发布时间】:2014-03-07 04:40:58
【问题描述】:

我有两个表与 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 中的变量项) {

  <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 }

如何解决,请帮忙

【问题讨论】:

    标签: linq asp.net-mvc-4


    【解决方案1】:

    你可以将匿名类转换为类型化类,首先添加这个类

      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}); 
    

    最后将视图页转换为“测试”

    @foreach (var item in (List<Test>)ViewBag.dList)
    {
    
          <tr>
    
            <td>@item.Fname</td>
            <td> @item.price</td>
           </tr>
    
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多