MVC kendo Grid - 当参数太长时,Read方法失败

时间:2015-07-14 18:17:33

标签: asp.net-mvc kendo-ui grid

我正在使用MVC Kendo Grid 这是我的Read方法:

 @(Html.Kendo().Grid<Model>()
                       .Name("Grid")
                       .Columns(columns =>
                        {
                        }
 .DataSource(dataSource => dataSource
 .Ajax()
 .Read(read => read.Action("MyAction", "MyController", new { ids = 
     Model.SelectedIds }))
      )
  )

Model.SelectedIds是一个逗号分隔的id字符串,我在控制器中分割并获取Ids的记录。 如果Model.SelectedIds是一个小字符串,这可以正常工作 但是,当它是一个包含许多id的巨大字符串(例如3000)时,则永远不会调用Action。

无论我在哪里发送Json数据,我都已在web.config文件中将Json限制设置为max。在这里,我认为它不应该影响,因为这不是Json请求,对吗?

请帮我解决这个问题。

行动如下:

public ActionResult MyAction(DataSourceRequest request, string ids){
}

2 个答案:

答案 0 :(得分:0)

我打赌你需要查看max request length以及是否使用了网址,然后查看max url length。此外,还有一个可以控制json长度的配置元素。

  <system.web.extensions>
    <scripting>
      <webServices>
        <jsonSerialization maxJsonLength="99999999" />                                          
      </webServices>
    </scripting>
  </system.web.extensions>  

答案 1 :(得分:0)

我通过将数据作为对象而不是param

发送来修复此问题
.Read(read => read.Action("MyAction", "MyController").Data
("postData"))

JavaScript代码

function postData() {
    return { ids: $("#SelectedIds").val() };
}