Telerik MVC网格 - 产生多个数据行

时间:2012-08-01 07:24:39

标签: asp.net-mvc json serialization telerik telerik-grid

我正在使用telerik网格显示来自sql db的数据...当我显示超过3500行时,它返回:使用JSON JavaScriptSerializer进行序列化或反序列化时出错。字符串的长度超过maxJsonLength属性上设置的值。

互联网上的所有地方和Telerik Troubleshooting manual也写道,原因是编辑web.config。它对我没有帮助......我尝试了这样的返回数据:

JavaScriptSerializer serializer = new JavaScriptSerializer { MaxJsonLength = 536870912, RecursionLimit = 100 };
return new ContentResult()
{
    Content = serializer.Serialize(data),
    ContentEncoding = Encoding.UTF8
};

当我将数据作为ContentResult返回时,过滤和排序将停止工作。

我也在尝试这个解决方案:http://anyrest.wordpress.com/2011/09/27/large-json-result-for-teleriks-mvc-grid/这对我没有帮助......

以下是我的控制器代码:

[GridAction, POST("GridData")]
public ActionResult _Index()
{
    var data = GetExclusionsDataCollection();

    return View(new GridModel { Data = data });
}

谢谢, 大卫

2 个答案:

答案 0 :(得分:1)

我联系了Telerik的支持,现在我可以分享我的问题的原因......

Telerik Code库有link。重要的是在global.asax.cs中添加一行。他们解决方案的这一部分并不是我见过的大多数其他解决方案......

DI.Current.Register<IGridActionResultFactory>(() => new MyCustomGridActionResultFactory());

此行会导致ovveride默认的Telerik功能并激活您的自定义Json结果...

-David

答案 1 :(得分:0)

尝试在web.config中增加maxRequestLength

<system.web>
<httpRuntime requestValidationMode="2.0" maxRequestLength="VALUE" />
</system.web>

其中Value将设置为int.maxvalue或int64.maxvalue