我正在为 maxJsonLength 错误而苦苦挣扎。我正在将非常长的 xml 字符串(~4MB)从控制器操作传递到视图中的 javascript 方法。此方法处理数据并将其与 AJAX 一起发送回另一个控制器方法,在这里我收到错误。
我已经MaxJsonLength在JsonResult控制器方法中设置了对象,并且将这个字符串从控制器传递到视图没有问题。但是,当我尝试在处理后将其传回时,出现错误。
这是我准备数据的控制器方法:
private JsonResult PrepareXml(int someId)
{
// preparing data...
string xmlData = "..."; //(~4Mb)
JsonResult res = Json(xmlData);
res.MaxJsonLength = 10000000; // 10Mb
return res;
}
这是我的控制器方法,它试图处理从 ajax 方法传递的数据:
private JsonResult GetProcesedXml(string resultXml)
{
// This method is not ivoking
}
下面是我的脚本方法:
var data = {
someId: rowId,
};
$.ajax({
type: "POST",
url: "MyController/PrepareXml",
data: data,
contentType: "application/json; charset=utf-8",
success: function (result) {
// proces the result (big xml file)
//...
var processedResult = ""; // size of processedResult is a little bit bigger than 'result'
var data2 = {
resultXml: processedResult
};
$.ajax({
type: "POST",
url: "MyController/GetProcesedXml",
data: data2,
contentType: "application/json; charset=utf-8",
success: function (r) {
alert('success');
},
error: function (data) {
alert(data.responseText);
}
});
}
});
我已经尝试过的:
<add key="aspnet:MaxJsonDeserializerMembers" value="2147483647" /> //(max value)
<requestLimits maxAllowedContentLength="2097151000" /> //(max value)
<httpRuntime maxRequestLength="10000" /> //(~10MB)
相关分类