2012-12-17 103 views
4

我在MVC4中按照演示網格內嵌編輯,但我發現插入/編輯控制器中發佈的網格數據爲空。 CSHTML的Kendo UI Grid內嵌編輯發佈的數據爲空

代碼如下:控制器

@(Html.Kendo().Grid<CRM.Models.M_ProductGroup>() 
    .Name("Group") 
    .Columns(columns => 
    { 
     //columns.Bound(g => g.CompanyNo).Hidden(); 
     columns.Bound(g => g.CompanyNo).Width(60); 
     columns.Bound(g => g.ProductGroupNo).Width(60); 
     columns.Bound(g => g.ProductGroupName).Width(120); 
     columns.Command(command => 
     { 
      command.Custom("SelectProducts"); 
      command.Edit(); 
      command.Destroy(); 
     }).Width(200); 
    }) 
    .ToolBar(toolbar => toolbar.Create()) 
    .Editable(editable => editable.Mode(GridEditMode.InLine)) 
    .ClientDetailTemplateId("groupSetTemplate") 
    .Pageable() 
    .Sortable() 
    .Scrollable() 
    //.Resizable(resize => resize.Columns(true)) 
    .DataSource(dataSource => dataSource 
     .Ajax() 
     .Events(events => events.Error("error_handler")) 
     .Model(model => 
     { 
      model.Id(g => g.CompanyNo); 
      model.Id(g => g.ProductGroupNo); 
      //model.Field(g => g.ProductGroupName); 
     }) 
     .Create(create => create.Action("InsertGroup", "MProductGroup")) 
     .Read(read => read.Action("ShowGroup", "MProductGroup")) 
     .Update(update => update.Action("ChangeGroup", "MProductGroup")) 
     .Destroy(destroy => destroy.Action("DeleteGroup", "MProductGroup")) 
    //.PageSize(20) 
    ) 
    //.Events(events => events.DataBound("dataBound")) 

代碼如下:

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult InsertGroup([DataSourceRequest] DataSourceRequest request, M_ProductGroup group) 
    { 
     if (group != null && ModelState.IsValid) 
     { 
     return Json(new[] { group }.ToDataSourceResult(request, ModelState)); 
    } 

    [AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult ChangeGroup([DataSourceRequest] DataSourceRequest request, M_ProductGroup group) 
    { 
     if (group != null && ModelState.IsValid) 
     { 

     } 

     return Json(ModelState.ToDataSourceResult()); 
    } 

發佈數據( 「基團」)是空的,我不能得到它。

回答

1

檢查您的項目中是否包含kendo.aspnetmvc.min.js。

+0

非常感謝您的回答。它包含在我的項目中,如:.. \ Scripts \ kendo \ 2012.3.1114 \ kendo.aspnetmvc.min.js – user1905916

+0

這很奇怪。您可以檢查發佈的數據是什麼(使用瀏覽器的開發人員工具)。 –

+1

我發現新東西:如果我將[groupValue]更改爲「productGroup」,如[AcceptVerbs(HttpVerbs.Post)] public ActionResult ChangeGroup([DataSourceRequest] DataSourceRequest request,M_ProductGroup productGroup),我可以獲取發佈的數據;如果使用「組」,仍然無法獲得發佈的數據。爲什麼??? – user1905916

1

我有同樣的問題,我發現了一個有趣的事情。

而不是

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult ChangeGroup([DataSourceRequest] DataSourceRequest request, M_ProductGroup group) 

我所做的:

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult ChangeGroup([DataSourceRequest] DataSourceRequest request, int ProductGroupNo, string ProductGroupName) 

而且我recived的ID和我的內聯電網更名。

我知道這是一個不雅的解決方案和一個古怪的東西,但它可能會幫助您獲得解決方案。

+0

這個解決方案一年後爲我工作。 – hubatish