開發工具與關鍵技術: VS , MVC ;
作者:劉佳明
撰寫時間:2019年 7 月 2 日
本篇文章需要介紹一個控制器中擷取到多個表格的資料,并且以一個對象的格式傳輸到頁面中,表與表之間互不影響,
本次案例中我們需要完成的效果呢 就是查詢出一個單據表格,點選單據的表格行,就能夠擷取目前行的一個ID,在通過傳遞ID到控制器中查詢出來個以上截圖明細表的數,并把資料以一個集合的形式傳遞到頁面上去,友善我們擷取資料進行資料的回填,
public class Reservi
{
public Reservition a { get; set; }
public List<S_ResMaintainItem> b { get; set; }
public List<S_ResParst> c { get; set; }
public List<S_ResOtheConsume> d { get; set; }
}
首先,我們在控制器中建立一個自定義類,該類和我們平時的類不太一樣,是使用資料庫中的表格來做資料類型,S_ResMaintainItem 修理項目明細表
S_ResParst 估計材料明細表 S_ResOtheConsume 其它費用明細表
Reservition表中的中的主鍵分别在另外三個表中做外鍵,可利用Reservition的主鍵來查詢到其它表資訊;
public ActionResult BackfillODD(int ReservationID)
{
var List = (from tb in myModels.S_Reservation
where ReservationID == tb.ReservationID
select new Reservition
{
ReservationID = tb.ReservationID,//預約ID
MaintainSortID = tb.MaintainSortID,//維修類型ID
VehicleModelID = tb.VehicleModelID,//車型ID
ReceptionID = tb.ReceptionID,//接車ID
ReservationNumber = tb.ReservationNumber,//預約單号,
ljMaintainNumber = tb.ljMaintainNumber,//對應的維修單号,
StrortDateOne = tb.StrortDate.ToString(),//開單日期,
ReservationDateOne = tb.ReservationDate.ToString(),//預約維
}).Single();
var listItem = myModels.S_ResMaintainItem.Where(m=>m.ReservationID == ReservationID).ToList();
var listResParst = myModels.S_ResParst.Where(m=>m.ReservationID == ReservationID).ToList();
var listOthe = myModels.S_ResOtheConsume.Where(m => m.ReservationID == ReservationID).ToList();
Reservi das = new Reservi()
{
a = List,
b= listItem,
c= listResParst,
d= listOthe,
};
return Json(das, JsonRequestBehavior.AllowGet);
}
Retur傳回的資料截圖如下: