获取maxJsonLength属性错误

时间:2018-08-13 12:36:48

标签: c# asp.net-mvc asp.net-mvc-4

获取错误:

  

类型为“ System.InvalidOperationException”的异常发生在   System.Web.Extensions.dll,但未在用户代码中处理

     

其他信息:序列化或反序列化期间出错   使用JSON JavaScriptSerializer。字符串长度超过   在maxJsonLength属性上设置的值。

在我的appsetting文件中,我添加了:

<add key="aspnet:MaxJsonDeserializerMembers" value="2147483647" />

在我的webconfig文件中,我添加了:

 <system.web.extensions>
    <scripting>
      <webServices>
        <jsonSerialization maxJsonLength="2147483647"/>
      </webServices>
    </scripting>
    </system.web.extensions>

仍然出现错误。

发生在“返回”中的错误,这是我的C#代码:

  public String GetBulkContacts(string KeyName, string GroupName)
        {
            var result = _bulkMailService.GetBulkMailContacts(KeyName, GroupName);
            return new JavaScriptSerializer().Serialize(result);
        }

1 个答案:

答案 0 :(得分:1)

您可以更改为此;

var serializer = new JavaScriptSerializer();
serializer.MaxJsonLength = Int32.MaxValue;
return serializer.Serialize(result);

据我所知,web.config设置仅适用于MVC内部序列化程序,而不适用于您自己设置的实例...

您还可以使用;

return new JsonResult()
    {
        Data = result,
        MaxJsonLength = Int32.MaxValue
    };

相反。另外,我认为您应该使用

JsonConvert.SerializeObject(result);

这几天代替了直接的JavaScriptSerializer。