2016-10-17 11 views
0

私はC#とasp.netとmvcを初めて使用しています。コントローラから自分のビューにデータを渡す方法を理解しようとしています。 1つのテーブルで作業していますが、詳細が必要です。ASP.netのビューにテーブル結合を渡す方法

私のコントローラ

namespace OpenCustomerOrders.Controllers 
{ 
    public class OrderController : Controller 
    { 

     OrderContext db = new OrderContext(); 
     public ActionResult Index() 
     { 
      var query = (from h in db.oeordhdr_sql 
         join l in db.oeordlin_sql 
         on h.ord_no equals l.ord_no 
         select new 
         { 
          h.ord_no, 
          h.ship_via_cd, 
          h.bill_to_name, 
          l.item_no, 
          l.qty_ordered, 
          l.item_desc_1, 
         }).ToList(); 


      return View(query); 
     } 
    } 
} 

私の見解は今

あなたがここのViewModelを作成し、ビューに表示される必要があることでプロパティを追加し、その希望する必要が
@model IEnumerable<OpenCustomerOrders.oeordhdr_sql> 

@{ 
    ViewBag.Title = "Index"; 
} 

<th>Bill to Name</th> 

<td> 
      @Html.DisplayFor(modelItem => item.ord_no) 
     </td> 
+0

ではなく、直接ビュー –

+0

でモデルクラスを使用しての、のviewmodelクラスを作成します。新しいのviewmodelにモデルを変更する

public ActionResult Index() { var query = (from h in db.oeordhdr_sql join l in db.oeordlin_sql on h.ord_no equals l.ord_no select new OrdersViewModel { ord_no = h.ord_no, ......... ......... item_no = l.item_no }).ToList(); return View(query); } 

今ビューで:お尻のインスタンスのように'クエリー'が含んでいるものを調べてください。それはあなたが期待するものですか?それは正しい方向に向けるかもしれません。それが立っているので、あなたが得ているものがあなたが期待しているものとどのように違うのか分かりません。 – Jonathan

+0

あなたは照会によって期待される 'oeordhdr_sql'のコレクションではなく、匿名オブジェクトのコレクションを作成しています。必要なプロパティを含むビューモデルを作成し、そのビューモデルにクエリを投影する必要があります - ' select MyViewModel {。 ...} 'に変更し、ビューを' @model IEnumerable 'に変更します –

答えて

2

のように見えます次のようになります:

public class OrdersViewModel 
{ 

    public int ord_no { get;set; } 
    public int item_no { get;set; } 
    // other properties needed 
    ................. 
    .................      
} 

そして、linqクエリでは、そのcl私はあなたのリターンにブレークポイントを置く

@model IEnumerable<OpenCustomerOrders.OrdersViewModel> 

@{ 
    ViewBag.Title = "Index"; 
} 

<th>Bill to Name</th> 

<td>@Html.DisplayFor(modelItem => item.ord_no)</td> 
関連する問題