0

我正在检索 JSON,但由于其长度有限 (2147483644),我收到此错误。

我怎样才能捕捉到这个错误?

使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了 maxJsonLength 属性上设置的值。

这就是我现在编码的方式。

[HttpGet]
        public JsonResult GetSearchData(string filter)
        { 
            IRemediationService svc = new RemediationService();
            var data = svc.SearchData(filter);
            try{
              return Json(data, JsonRequestBehavior.AllowGet);
            }catch(Exception e){
              return "Error";
            }

    }
4

1 回答 1

2

在 MVC 4 中,您可以执行以下操作:

protected override JsonResult GetSearchData(string filter)
{
    IRemediationService svc = new RemediationService();
    var data = svc.SearchData(filter);
    try
    {
        return new JsonResult()
            {
                Data = data,
                JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                MaxJsonLength = Int32.MaxValue
            };
    }
    catch (Exception e)
    {
        return "Error";
    }
}

您可以检查数据并修剪您的对象。

如果不是,也许您可​​以将其作为字符串传回...

protected override ActionResult GetSearchData(string filter)
{
    IRemediationService svc = new RemediationService();
    var data = svc.SearchData(filter);
    try
    {
        return Content(data.ToString());
    }
    catch (Exception e)
    {
        return "Error";
    }
}
于 2013-10-07T22:34:49.883 回答