我的 MVC 应用程序中有一个 KendoUI 网格。网格通过我的 SQL 数据库中的视图显示相关数据。它显示的两个表是Cars
和Bookings
表:汽车
公共整数 ID
公共字符串 Reg
公共字符串制作
公共字符串模型
表:预订
公共整数 ID
公共日期时间预订开始
公共日期时间预订结束
公共 int Car_Id
网格的代码如下:
@(Html.Kendo().Grid<MyProject.ViewModels.CarBookings>()
.Name("Bookings")
.Columns(columns => {
columns.Bound(c => c.Id);
columns.Bound(c => c.Car_Id);
columns.Bound(c => c.Reg);
columns.Bound(c => c.Make);
columns.Bound(c => c.Model);
columns.Bound(c => c.BookingStart).Format("{0:dd/MM/yyyy}");
columns.Bound(c => c.BookingEnd).Format("{0:dd/MM/yyyy}");
columns.Command(command => { command.Edit(); }).Width(250);
})
.Pageable()
.Sortable()
.Groupable()
.Editable(editable => editable.Mode(GridEditMode.InLine))
.DataSource(dataSource => dataSource
.Ajax()
.Model(model => {
model.Id(p => p.Id);
model.Field(p => p.Id).Editable(false);
model.Field(p => p.Car_Id).Editable(false);
})
.Read(read => read.Action("GetBookings", "Bookings"))
.Update(update => update.Action("UpdateBooking", "Booking")))
))
我们允许用户利用网格的内联编辑功能并更新详细信息。我的问题是这些细节实际上来自两个表,所以当他们来保存这些更改时,我需要一种方法来用用户更改的数据更新这两个表。
这是UpdateBooking一种非常粗略地尝试更新两个表的方法。
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UpdateBooking([DataSourceRequest] DataSourceRequest request, Car car, Booking booking, CarBookings vm)
{
unitOfWork.CarRepository.Update(car);
unitOfWork.BookingRepository.Update(booking);
unitOfWork.Save();
return Json(new[] { vm }.ToDataSourceResult(request, ModelState));
}
这种方法的问题在于BookingId 是从CarId引用的。所以这是行不通的。任何人都可以提供更好的方法来处理这种情况吗?
翻过高山走不出你
相关分类