我jQuery是如何在MVC控制器中使用JQuery AJAX發佈多個數組?
$(":checkbox").change(function() {
if(this.checked) {
var man_data = { 'man': [] };
var size_data = { 'size': [] };
var color_data = { 'color': [] };
$('input:checked').each(function()
{
if(this.name == 'man') man_data['man'].push($(this).val());
if(this.name == 'size') size_data['size'].push($(this).val());
if(this.name == 'color') color_data['color'].push($(this).val());
});
var path = "/Home/Index";
$.ajax({
url: path, type: "POST", cache: "false",
dataType: "json", contentType: "application/json; charset=utf-8",
data: JSON.stringify(man_data),
traditional: true,
converters: {'text json': true}
}).success(function (responseText) {
$('#Grid').replaceWith(responseText);
}).error(function (responseText){
swal("Error!", "Test 1", "error");
});
//swal("Error!", "Test 2", "error");
}
});
如果我只發佈一個陣列data: JSON.stringify(man_data)
它的偉大工程。 的問題是,我想後所有3個數組
- man_data的內容
- size_data
- color_data
我想是這樣
data: JSON.stringify(man_data + size_data + color_data)
但它不按預期工作:(
我應該如何修改上面的代碼?
我也嘗試過類似
data: {'man':JSON.stringify(man_data),'size':JSON.stringify(size_data)},
,但現在我得到的錯誤Invalid JSON primitive: man.
UPDATE
的數據在一個MVC控制器
public ActionResult Index(int[] man = null, int[] size = null, int[] color = null)
{
}
你有沒有嘗試過像'man_data.concat(size_data,color_data)'這樣的東西? – Dan
@丹我得到一個man_data.concat不是一個函數錯誤。 – OrElse
man_data絕對是一個數組嗎?獲取不是函數錯誤會暗示它不是。哦,我明白了,這是因爲它們都被物體包裹着,這是有原因的嗎?我會將其轉化爲答案。 – Dan