在加载大型
JSON响应表单服务器时,我在剃刀视图引擎MVC4(.net 4.5)应用程序中遇到以下错误
“使用JSON JavaScriptSerializer序列化或反序列化时出错.字符串的长度超过了@Html.Raw(Json.Encode(jsondata)”上maxJsonLength属性设置的值“
我已经尝试通过在我的web.config中设置MaxJsonLength属性:
configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483644"/>
</webServices>
</scripting>
</system.web.extensions>
</configuration>
在发送JSON响应时也尝试在服务器端执行以下操作.
return new JsonResult()
{
Data = data,ContentType = contentType,ContentEncoding = contentEncoding,JsonRequestBehavior = behavior,MaxJsonLength = Int32.MaxValue
};
也试过解决列出的野兔:http://brianreiter.org/2011/01/03/custom-jsonresult-class-for-asp-net-mvc-to-avoid-maxjsonlength-exceeded-exception/.但没有为我工作:(
有人可以建议我如何避免这个错误或者如何增加Jason的响应最大长度?
解决方法
不知何故,我通过使用下面的代码来摆脱这个错误.
@{
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
serializer.MaxJsonLength = Int32.MaxValue;
}
<script type="text/javascript">
var entries = @Html.Raw(serializer.Serialize(Model.FeedEntries));
</script>
至少对我而言,这在服务器端不起作用.