我的網格有所有crud操作工作,唯一的問題是,我保存一個新的記錄後,網格不會更新到控制器的新ID。我已驗證該ID是從控制器與模型一起發回的,但網格不更新。因此,對沒有頁面刷新的同一記錄的任何後續更改都會創建一條新記錄。Kendo網格創建後不更新ID
控制器:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult AddHoleToJob([DataSourceRequest] DataSourceRequest request, PlannedHolesVM viewModel)
{
_jobInfoService.AddHole(viewModel);
return Json(viewModel, JsonRequestBehavior.AllowGet);
}
CSHTML:
@(Html.Kendo().Grid<PlannedHolesVM>()
.Name("PlannedHolesKendoGrid")
.Editable(e => e.Mode(GridEditMode.PopUp).TemplateName("HoleDetails"))
.Columns(c =>
{
c.Bound(m => m.ID);
c.Bound(m => m.HoleSectionLookupName);
c.Bound(m => m.HoleSectionTypeLookupHoleSectionType);
c.Bound(m => m.HoleSize);
c.Command(command =>
{
command.Edit();
command.Destroy();
});
})
.ClientDetailTemplateId("template")
.ToolBar(toolbar => toolbar.Create().Text("Add Hole"))
.DataSource(ds => ds
.Ajax()
.Model(model =>
{
model.Id(c => c.ID);
model.Field(c => c.JobID);
model.Field(c => c.JobID).DefaultValue(ViewBag.Jobid);
model.Field(c => c.HoleSectionID);
model.Field(c => c.HoleSectionTypeID);
})
.Read(read => read.Action("PlannedHolesGridData", "JobRecord", new { jobid = ViewBag.Jobid }))
.Destroy(delete => delete.Action("DeleteHoleFromJob", "JobRecord"))
.Create(create => create.Action("AddHoleToJob", "JobRecord"))
.Update(update => update.Action("AddHoleToJob", "JobRecord"))
)
.Events(e =>
{
e.DataBound("dataBound");
e.Save("refreshOnSave");
})
)
我如何使電網更新新的ID,而無需調用閱讀並要回數據庫?
您已經爲'Create'和'Update'方法指定了相同的URL。 – CSharper 2014-10-20 14:53:39
是的,這是故意的。他們都在automapper/entity框架的修改版本中調用save方法。 – user3738893 2014-10-20 16:19:22