问题:单击“更新”按钮时,它不会调用控制器“操作”。但同样的工作完全适合Create / Read / Destroy。我失踪的任何东西????请告诉我。
查看代码:
@(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);
}
答案 0 :(得分:1)
对于 GridEditMode .Inline,您必须使用toolbar.Save()
来保存数据并点击控制器
答案 1 :(得分:1)
当然,在您将任何内联单元格的一个字母更改为事件之前,它不会被击中。这意味着如果您不进行修改,它将无法执行操作。
答案 2 :(得分:0)
尝试将HttpPost
属性添加到操作方法中,如下所示:
[HttpPost]
public ActionResult UpdateUser([DataSourceRequest] DataSourceRequest request,Login objUpdate)
{
}
Kendo正在发送POST
,当前方法仅接受GET
次请求。
另外,请确保该方法正在返回:
return Json(objUpdate.ToDataSourceResult(request, ModelState));