3
저는 아약스와 함께 엔티티를 사용하고 있습니다. JavaScript로 만든 그리드에서 Entity 프레임 워크를 사용하여 전체 테이블을 만들고 싶습니다. 현재 제가 보내고있는 테이블은 140 라인 미만입니다. 내 네트워크 통계에서문자열이 maxJsonLength를 초과합니다 (250KB 미만)
{"Message":"Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property.","StackTrace":" at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, StringBuilder output, SerializationFormat serializationFormat)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, SerializationFormat serializationFormat)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj)\r\n at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"}
내가 오류 등이 응답 본문 내 XMLHttpRequest를위한 500 오류 : 만 테이블에 50 줄 나는 다음과 같은 오류가 몇 가지 더이있는 경우 내 코드가 작동 위에 표시된. 라인 수를 50 개로 제한하면 페이지가 제대로 작동하고 응답 본문에서 데이터를 볼 수 있습니다. 다음 코드는 엔티티에서 자바 스크립트로 데이터를 전송하는 데 필요한 모든 코드입니다. 자바 스크립트 :
$(function() {
$.ajax({
url: "EditFeedApac.aspx/GetApacData",
type: "POST",
contentType: "application/json",
success: function (result) {
console.log(result.d);
},
error: showError
});
});
C 번호 오류를 볼 수있는
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static IEnumerable<PreApacData> GetApacData()
{
var a = new Towers_WatsonEntities().tbl_TowersWatson_preAPAC.ToList();
Mapper.CreateMap<tbl_TowersWatson_preAPAC, PreApacData>();
var newData = a.Select(Mapper.Map<tbl_TowersWatson_preAPAC, PreApacData>).ToList();
return newData;
}
명확 MaxJsonLength이 최대 값으로 설정되지 않은 나타냅니다.
var serializer = new JavaScriptSerializer();
serializer.MaxJsonLength = Int32.MaxValue;
string test = serializer.Serialize(newData);
return test;
는 이제 MaxJsonLength가 방금 제한을 위해, 4메가바이트의 크기가 될 수 다음 GetApacData() 함수에서 는 다음 코드를 추가했습니다. 이 속성을 설정하면 여전히 동일한 serialization 오류가 발생합니까? 여기서 내가 뭘 잘못하고 있니? JavaScript로 내 데이터를 보내려면 어떻게해야합니까?
이 응답은 ScriptMethod 특성과 정적 메서드 (비 정적 Serialize 메서드 사용을 배제하는)를 사용하여 JavaScript에서 데이터를 사용할 수있는 경우 특히 유용합니다. 고맙습니다! – markau