0

问题:单击“更新按钮”时,它不会调用控制器“操作”。但是对于创建/读取/销毁完全相同的工作。任何我失踪?请告诉我。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); 
     }    
+0

根本没有击中动作方法还是没有返回结果? –

+0

它根本没有击中动作...... :( –

+0

Thx对于回应@mmillican任何想法可能是什么问题???? –

回答

0

尝试添加HttpPost属性的动作方法,是这样的:

[HttpPost] 
public ActionResult UpdateUser([DataSourceRequest] DataSourceRequest request,Login objUpdate) 
{ 
} 

剑道正在发送一个POST和目前的方法只接受GET req uests。

此外,还要确保该方法返回:

return Json(objUpdate.ToDataSourceResult(request, ModelState)); 
+0

我已经试过,但没有运气:(其实我忘了在控制器方法中提到[AcceptVerbs(HttpVerbs.Post)] ...已修改代码.. –

+0

是'登录'参数你是像其他人一样传递?它看起来应该可以工作,但我添加了另一件事来检查上面的答案。 –

1

对于GridEditMode .Inline,你必须使用toolbar.Save()保存数据和命中控制器

0

当然,也不会直到您将事件更改为任何内嵌单元格的单个字母。这意味着如果你不做修改,它不会触及行动。