2014-02-10 102 views
0

我使用Kendo UI網格(MVC Wrappers),ASP.NET MVC 3和Jquery。劍道可編輯網格,ASP.NET MVC更新行限制?

我有一個可編輯的批處理模式Kendo網格。在許多情況下,這個網格將有30或40行,全部都可以編輯給用戶。當用戶點擊提交按鈕時,Kendo軟件將網格的所有更新行放入一個集合中,並將它們發送到服務器進行處理。當用戶編輯的行數少於18時,所有工作都正常。如果用戶編輯了17條記錄,它們都會很好地發送到控制器。如果用戶編輯了18條或更多條記錄,則會出錯,並且它甚至不會在服務器上達到我的中斷點。錯誤消息不是有意義的,因爲它只是從我的頁面中獲取的一堆HTML。

這裏是我的控制器的操作方法如下內容:

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult _AjaxUpdateFields([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<People> updatedPeople) 
    { 
     //DO STUFF WITH UPDATED DATA 
    } 

這裏是我的網格設置洛斯類似:

Html.Kendo() 
.Grid<MyProject.Models.Domain.Students>() 
.Name("Students") 
.Sortable(settings => settings.Enabled(false)) 
.Filterable(settings => settings.Enabled(false)) 
.Resizable(resizing => resizing.Columns(true)) 
.Scrollable(settings => settings.Enabled(true))  
.HtmlAttributes(new { style = "font-size: 85%;" }) 
.Columns(columns => 
    { 
     columns.Bound(o => o.StudentId).Title("StudentId").Hidden(); 
     columns.Bound(o => o.Name).Title("Student Name").Width(200); 
     columns.Bound(o => o.teacher).Title("Teacher") 
      .ClientTemplate("#=data.teacher ? teacher.teacherName : ''#").Width(150).Filterable(false); 
    }) 
    .DataSource(dataSource => dataSource.Ajax() 
             .Batch(true) 
             .ServerOperation(false) 
             .Model(model => 
              { 
               model.Id(c => c.StudentId); 
               model.Field(c => c.teacher);              
              }) 
              .Events(events => events.Error("Field_onError")) 
              .Read(read => read.Action("_AjaxGetFields", "Student")) 
              .Update("_AjaxUpdateFields", "Student") 
              .Destroy("_AjaxDelFields", "Student")) 
    .Events(events => events.DataBound("Fields_onDataBound") 
          .Change("onFieldSelect") 
          .Edit("onFieldEdit") 
          ) 
    .ToolBar(commands => 
     { 
      commands.Save().HtmlAttributes(new { id = "saveField" }); 
     }) 
    .Scrollable(scrollable => scrollable.Height("375px")) 
    .Selectable() 
    .Editable(editing => editing.Mode(Kendo.Mvc.UI.GridEditMode.InCell)).Render(); 

所以我想既然我能做到17條記錄完全正常,但只要碰到18或更多,它就會崩潰,那麼我需要修改一些限制或最大限度的地方?

Kendo網格在當時可以發送回控制器的行數是否有限制?

是否有可能有一些MVC,IE或Web服務器設置限制了這一點?或者可能需要設置的JQuery中的某些內容?

回答

1

我終於找到了解決方案。這可以標記爲已回答。

我需要把它添加到我的web.config:

<appSettings> 
<add key="aspnet:MaxHttpCollectionKeys" value="3000"/>