问题:单击"更新"按钮时,它不会调用控制器操作。但是相同的工作非常适合创建/读/销毁。我缺少什么????请让我知道。
查看代码:
@(Html.Kendo().Grid<Model>()
.Name("XGrid")
.HtmlAttributes(new { style = "height: 525px;" })
.Columns(columns =>
{
//Columns...
})
.Editable(editable => editable.Mode(GridEditMode.InLine))
.ToolBar(toolbar =>
{
toolbar.Create();
})
.Pageable()
.Sortable()
.Scrollable()
.Filterable()
.Events(events =>
{
events.Edit("onEdit");
events.Save("onSave");
})
.Selectable(selectable => selectable.Type(GridSelectionType.Row))
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(12)
.ServerOperation(true)
.Model(model =>
{
model.Id(ex => ex.User_ID);
})
.Update(update => update.Action("UpdateUser", "ViewUser"))
.Read(read => read.Action("UsersRetreive", "ViewUser"))
.Create(create => create.Action("CreateUser", "ViewUser"))
)
)
控制器代码:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UpdateUser([DataSourceRequest] DataSourceRequest request,Login objUpdate)
{
if (ModelState.IsValid)
{
//Saving Code
}
else
return Json(objUpdate);
}
对于 GRIDEDITMODE .inline,您必须使用toolbar.Save()
保存数据并击中控制器
当然,在更改事件的一个字母的一个字母中,它将不会达到。这意味着如果您不进行修改,它将不会达到动作。
尝试将HttpPost
属性添加到操作方法中,例如:
[HttpPost]
public ActionResult UpdateUser([DataSourceRequest] DataSourceRequest request,Login objUpdate)
{
}
Kendo正在发送POST
,而当前方法仅接受GET
请求。
另外,请确保该方法正在返回:
return Json(objUpdate.ToDataSourceResult(request, ModelState));