在加载大型
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/.但没有为我工作:(
解决方法
不知何故,我通过使用下面的代码来摆脱这个错误.
@{ 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>
至少对我而言,这在服务器端不起作用.