Я борюсь с ошибкой maxJsonLength.Я передаю очень длинную строку XML (~ 4 МБ) от действия контроллера в метод 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)