#jquery #.net #asp.net-mvc-3
#jquery #.net #asp.net-mvc-3
Вопрос:
Возможно ли опубликовать массив строк JSON в MVC3 без пользовательского связующего? Массив создается на основе значений флажков, и я отправляю его через jQuery следующим образом:
var checkedItems = $(":checked").map(function () {
return this.value;
}).get();
$.post("/test/delete", { Items: checkedItems });
Исходные строки запроса post выглядят следующим образом:
Items%5B]=test1.comamp;Items%5B]=test2.comamp;Items%5B]=test3.com
Я взглянул на исходный код MVc3, и оказалось, что мне нужно использовать значения индекса, такие как [0], [1]. Если MVC3 не может привязать массив изначально, есть ли простой способ изменить значения post, чтобы они имели значения индекса, требуемые MVC3?
Ответ №1:
Вам необходимо указать тип содержимого, чтобы asp.net чтобы mvc считывал его как json, используйте ajax-функцию jquery следующим образом:
$.ajax({
url: "/test/delete",
type: 'POST',
dataType: 'json',
data: JSON.stringify({Items: checkedItems}),
contentType: 'application/json; charset=utf-8',
success: function (data) {
}
});
и получаем json2.js чтобы сделать json.stringify доступным в браузере, который его не поддерживает
Ответ №2:
Вам нужно закодировать массив
{ Items: JSON.stringify(checkedItems) }
А затем декодировать его с другой стороны. Но будьте осторожны — JSON.stringify недоступен в IE7.
Комментарии:
1. Получить json2.js он добавит JSON.stringify, когда он недоступен, и ничего не коснется, когда он будет доступен.