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 に答える