Отправить массив param с jQuery ajax/load
public ActionResult DoSomething(string[] arr, bool someBool, int someInt) { }
пытается вызвать вышеупомянутый метод из jQuery:
var test = [];
test.push('dog');
test.push('cat');
$container.load('MyController/DoSomething',
{ 'arr[]': test, 'someBool': true, 'someInt': 1 },
function(response, status, xhr) {
// ...
});
массив paramater имеет значение null, другие параметры являются точными. Что я делаю неправильно?
Инструменты разработчика Chrome отображают данные формы, представленные как
arr%5B%5D%5B%5D:dog
arr%5B%5D%5B%5D:cat
someBool:true
someInt:1
не уверен, что там происходит, но не подходит мне.
Ответы
Ответ 1
Если вы используете jquery 1.4, вам может потребоваться установить параметр traditional
на true
, чтобы быть совместимым со значением по умолчанию Формат форматирования модели в ASP.NET MVC:
var test = [];
test.push('dog');
test.push('cat');
$.ajax({
url: 'MyController/DoSomething',
type: 'GET',
traditional: true,
data: { arr: test, someBool: true, someInt: 1 },
success: function(result) {
$container.html(result);
}
});
или если вы предпочитаете метод .load()
:
var data = { arr: test, someBool: true, someInt: 1 };
$container.load('MyController/DoSomething', $.param(data, true),
function(response, status, xhr) {
// ...
});
Ответ 2
Просто удалите []
{ 'arr': test, 'someBool': true, 'someInt': 1 },
Отправленные значения (проверка с помощью Firebug).
arr[] dog
arr[] cat
someBool true
someInt 1
Ответ 3
Вы можете видеть, похожа ли эта проблема на вашу:
Передача вложенных массивов в asp.net mvc с помощью jQuery $.ajax
Ответ 4
Даже я столкнулся с ошибкой, передавая массив с HTML-страницы на страницу aspx.
моим требованием было загрузить страницу aspx в теге DIV на странице html. на загрузке страницы мне нужно передать эти значения массива JS в нагрузку страницы aspx.
i используется ниже.
$('#<divTagID>').load("Targetpage.aspx",{"Arr":JSArrValues});
В событии загрузки страницы aspx я могу получить доступ к этим значениям как:
string results = Response["Arr[]"];
Благодаря документации API JQuery введите описание ссылки здесь и stackoverflow