开发工具与关键技术: 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返回的数据截图如下: