Kendo Grid Command.Edit()不向控制器启动



问题:单击"更新"按钮时,它不会调用控制器操作。但是相同的工作非常适合创建/读/销毁。我缺少什么????请让我知道。

查看代码:

@(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));

最新更新