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>
ではなく、直接ビュー –
でモデルクラスを使用しての、のviewmodelクラスを作成します。新しいのviewmodelにモデルを変更する
今ビューで:お尻のインスタンスのように'クエリー'が含んでいるものを調べてください。それはあなたが期待するものですか?それは正しい方向に向けるかもしれません。それが立っているので、あなたが得ているものがあなたが期待しているものとどのように違うのか分かりません。 – Jonathan
あなたは照会によって期待される 'oeordhdr_sql'のコレクションではなく、匿名オブジェクトのコレクションを作成しています。必要なプロパティを含むビューモデルを作成し、そのビューモデルにクエリを投影する必要があります - ' select MyViewModel {。 ...} 'に変更し、ビューを' @model IEnumerable 'に変更します –