В моей сетке работают все операции с crud, единственная проблема заключается в том, что после сохранения новой записи сетка не обновляется до нового идентификатора с контроллера. Я проверил, что идентификатор отправляется обратно с контроллера с моделью, но сетка не обновляется. Поэтому любые последующие изменения одной и той же записи без обновления страницы создают новую запись.Сетка Кендо не обновляет 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");
})
)
Как мне сделать сетку обновить новый идентификатор без вызова читать и вернуться в базу данных?
Вы указали один и тот же URL-адрес для методов «Создать» и «Обновить». – CSharper
Да, это специально. Оба они называют метод сохранения в модифицированной версии архитектуры automapper/entity. – user3738893