无法将超过1000条记录传递给kendo gridview

时间:2017-01-09 06:09:17

标签: c# razor kendo-grid

我正在使用Kendo Gridview来显示一些记录。当从数据库中检索并存储在同一类的列表中时,这些记录在Json中。列表的计数为1000时没有问题,但是1000以上的任何数字都会触发异常:" 错误在使用JSON JavaScriptSerializer进行序列化或反序列化期间。字符串的长度超过maxJsonLength属性上设置的值。"

我已尝试在web.config和appsettings中更改maxJsonLength值,这是我在堆栈溢出时发现的一些解决方案中的建议。但它们都不起作用。这是我的观点:

@(Html.Kendo().Grid(Model)

.Name("grid")
.Scrollable()
.Filterable()
.Columns(columns =>
    {
        //Columns added here
    })
.Selectable(selectable => selectable.Mode(GridSelectionMode.Single))
.Pageable(pageable => pageable
.Refresh(false)
.PageSizes(true)
.ButtonCount(3))
.DataSource(dataSource => dataSource
    .Ajax()
    .ServerOperation(false)
    .Model(model =>
        {
            model.Id(p => p.Id);
            model.Field(p => p.Id).Editable(false);

        })
    .Read(read => read.Action("Action", "Controller"))
    .PageSize(50)
    )
.Events(e => e.DataBound("selectDefault"))

1 个答案:

答案 0 :(得分:0)

我开始意识到我传递给视图的Json列表有太多复杂的数据类型(即类对象和枚举),这就是没有解决方案有效的原因。所以我提到了这个link中描述的解决方案,并创建了一个中间视图模型。在这个模型中,我添加了我想要的所有必要属性并将其传递给视图。它现在工作得很好