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

當然,也不會直到您將事件更改爲任何內嵌單元格的單個字母。這意味着如果你不做修改,它不會觸及行動。