У меня есть веб-приложение asp.net mvc, которое имеет форму с некоторыми текстовыми данными (заголовок, описание, например) и некоторыми изображениями.Из-за изменения размеров изображений перед их отправкой на сервер у меня есть функция javascript для изменения размера изображений, помещения всех данных в объект и отправки их в виде JSON с вызовом ajax на сервер.
ЭтоМодель:
public class ItemCU
{
public int pid { get; set; }
public string pcat { get; set; }
public string ptitle { get; set; }
public string pdescription { get; set; }
public double pprice { get; set; }
public int pcount { get; set; }
public int psort { get; set; }
public string[] pimgOrder { get; set; }
public string[] pimgNum { get; set; }
public string[] pimgData { get; set; }
public List<SelectListItem> pcategories { get; set; }
}
Это функция javascript:
function saveData() {
var imgNum = [], imgData = [];
for (var i = 0; i < newOrder.length; i++) {
if (newOrder[i] > 999999) {
imgNum.push(newOrder[i]);
var resimg = resizeImage($("img[data-id='" + newOrder[i] + "'").attr('src'));
imgData.push(resimg);
}
}
var itmData = {
pid: $("#id").val(),
ptitle: $("#title").val(),
pcat: $("#cat").val(),
pdescription: $("#description").val(),
pcount: $("#count").val(),
pprice: $("#price").val(),
psort: $("#sort").val(),
pimgOrder: newOrder,
pimgNum : imgNum,
pimgData : imgData
}
$.ajax(
{
url: '@Url.Action("ItemEdit", "Admin")',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({ piData: itmData }),
success: function (delres) {
window.location.href = delres.redirectUrl;
},
error: function (delres) {
window.location.href = delres.redirectUrl;
}
}
}
)
}
Я сократил вызов ajax вокруг части обратного вызова.
Все работает нормально, когда я просто выбираюи отправить одно изображение, но когда я хочу отправить несколько изображений, это не работает.Похоже, что данные не отправляются с помощью ajax, но будут продолжаться напрямую с ошибкой обратного вызова ..
Я сделал снимок экрана моего сеанса отладки браузера, где вы можете видеть, что массив (pimgdata) содержит два изображениятак что до сих пор все в порядке.

Всякий раз, когда я пытаюсь Google, я нахожу примеры с простой отправкой изображений без других данных или данных и одногоimage ...
Мой вопрос теперь заключается в том, сделал ли я что-то не так с вызовом (может быть, thiatring) или он все равно не работает так, как я хочу?
Iбыл бы очень благодарен, чтобы получить некоторые советы / подсказки / советы.Даже некоторые ключевые слова, которые я мог бы найти в Google, были бы полезны.
Заранее спасибо, Тим (надеюсь, что в вопросе есть вся необходимая информация ...)
ОБНОВЛЕНИЕ:
ПослеПо совету Робби Корнелиссена я обнаружил, что с maxJsonLength возникает «простая» проблема.К сожалению, когда я захожу в Google, я обычно нахожу ответы для отправки данных с сервера на клиент, а не наоборот.Как я уже читал, редактировать webconfig необязательно, так как он предназначен только для веб-сервисов, а не для контроллера MVC.
Я прочитал, что могу перейти на JSON.serialize, но думаю, что проблема будет та же.
Честно говоря, я не понимаю, является ли это проблемой отправки данных на сервер и / или получения данных на стороне сервера ...
Есть какие-нибудь подсказки, которые я могу использовать в Google?Большое спасибо, Тим
ОБНОВЛЕНИЕ 2 / 'РЕШЕНИЕ'
После долгого поиска я нашел две страницы, которые помогли мне найти 'решение', которое наконец заработало,Не знаю, может быть, есть лучший способ, но ...
Первая часть, которую я нашел на ExpertsExchange : они создали пользовательский JsonValueProviderFactory и заменили значение по умолчанию на это в Global.asax
Кроме того, я добавил maxRequestLength и maxAllowedContentLength в свой web.config, как я нашел здесь в StackOverflow
Могли бы быть и лучшие решения, но для меня это сработало.
Большое спасибо, Тим