我已经看过了,我似乎无法让它工作,我不断收到错误消息,我的json对象太大而无法传递给我的控制器。
The length of the string exceeds the value set on the maxJsonLength property.
所以我有一个json对象,其中包含最多3个图像的base64字符串以及一些文本数据。
我正在尝试将该对象传递给控制器。如果我不包含图像,它可以正常工作。
所以我试过,在web.config中;
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="500000000"/>
</webServices>
</scripting>
</system.web.extensions>
以及;
<add key="aspnet:MaxJsonDeserializerMembers" value="150000000" />
我已将我的控制器从ActionResult更改为JsonResult。
我已经读过我需要创建自己的json解析器等,很多网站都会处理从控制器传递数据到客户端的问题。
我正在尝试从客户端向控制器获取大量数据。
这里有任何帮助吗?
答案 0 :(得分:0)
如果您查看JsonResult
类的源代码ASP.NET MVC,可以找到此代码(+):
if (Data != null)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
if (MaxJsonLength.HasValue)
{
serializer.MaxJsonLength = MaxJsonLength.Value;
}
if (RecursionLimit.HasValue)
{
serializer.RecursionLimit = RecursionLimit.Value;
}
response.Write(serializer.Serialize(Data));
}
MaxJsonLength
属性的defualt值设置为2MB,RecursionLimit
设置为100。
您可以通过以下方式更改defualt值:
return new JsonResult
{
MaxJsonLength = Int32.MaxValue,
Data = customers,
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};