많은 데이터를 반환하는 컨트롤러가 있습니다. JSON JavaScriptSerializer를 사용하여 직렬화 또는 비 직렬화 중에 오류가 발생했습니다. 문자열의 길이가 maxJsonLength 속성에 설정된 값을 초과합니다. "MVC의 LargeJsonResult는 많은 값을 반환합니다.
나는 이것을 사용하여 나의 web.config를 추가했다. 그러나 오류는 여전히 발생합니다.
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483645" recursionLimit="100">
</jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
그때는 컨트롤러
return new LargeJsonResult() { Data = output, MaxJsonLength = int.MaxValue };
에서 다음과 같이 말했다이 웹 사이트 http://brianreiter.org/2011/01/03/custom-jsonresult-class-for-asp-net-mvc-to-avoid-maxjsonlength-exceeded-exception/
에 같은 새로운 클래스 LargeJsonResult를 추가하지만 난 많은 반환 데이터를 어떻게 것을 사용할 수 있습니까? 아래의 페이로드를 줄일 4 별도의 아약스 호출, 당신이 필요로하는 4 개 속성 중 하나를 반환하는 다른 방법에 대한 각을 고려하기 위해 내 컨트롤러
public ActionResult LoadInitData()
{
try
{
Database db = new Database("CON001");
_employee = Helper.Common.GetEmployeeData(db);
EmployeeDAC dacEmployee = new EmployeeDAC(db);
Employee dataEmployee = dacEmployee.GetDataByComputerLogin(GetUser());
if (_employee.SBU == "FB")
{
BrandBudgetDAC dacBrandBudget = new BrandBudgetDAC(db);
List<BrandBudget> dataBrandBudget = dacBrandBudget.GetDataBrandFB();
PostBudgetDAC dacPostBudget = new PostBudgetDAC(db);
List<PostBudget> dataPostBudget = dacPostBudget.GetDataPostFB();
AreaDAC dacArea = new AreaDAC(db);
List<Area> dataArea = dacArea.GetData();
return Json(new { Employee = dataEmployee, BrandBudget = dataBrandBudget, PostBudget = dataPostBudget, Area = dataArea }, JsonRequestBehavior.AllowGet);
}
else
{
BrandBudgetDAC dacBrandBudget = new BrandBudgetDAC(db);
List<BrandBudget> dataBrandBudget = dacBrandBudget.GetData(_employee.SBU);
PostBudgetDAC dacPostBudget = new PostBudgetDAC(db);
List<PostBudget> dataPostBudget = dacPostBudget.GetData(_employee.SBU);
AreaDAC dacArea = new AreaDAC(db);
List<Area> dataArea = dacArea.GetData();
return Json(new { Employee = dataEmployee, BrandBudget = dataBrandBudget, PostBudget = dataPostBudget, Area = dataArea }, JsonRequestBehavior.AllowGet);
}
}
catch (Exception ex)
{
return Json(new { Error = ex.Message }, JsonRequestBehavior.AllowGet);
}
}
내가 아약스를 수정하지 않습니다 어떤 방법이? 왜냐하면 나는 많은 modul에서이 반환 값을 호출하기 때문에 –
먼저 확인하십시오. 스크립트를 수정하지 않아도됩니다. (확실하지 않으므로 아무것도 게시하지 않았습니다.) –
안녕하세요 Stephen 제가 하나씩 선언하여 할 수 있습니다. 내 컨트롤러의 모든 반환 값. 하지만이 클래스의 LargeJsonResult가 내 케이스에서 작동하지 않는 것 같습니다. –