【发布时间】:2015-09-26 14:59:12
【问题描述】:
我的 Jquery 是
$(":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
- 大小数据
- 颜色数据
我尝试了类似的东西
data: JSON.stringify(man_data + size_data + color_data)
但它没有按预期工作:(
我应该如何修改上面的代码?
我也尝试过类似的东西
data: {'man':JSON.stringify(man_data),'size':JSON.stringify(size_data)},
但现在我收到错误Invalid JSON primitive: man.
更新
数据在 MVC 控制器上发送
public ActionResult Index(int[] man = null, int[] size = null, int[] color = null)
{
}
【问题讨论】:
-
你试过像
man_data.concat(size_data, color_data)这样的事情吗? -
@Dan 我得到一个 man_data.concat 不是函数错误。
-
man_data 绝对是一个数组吗?获取不是函数错误表明它不是。哦,我明白了,这是因为它们都被包裹在物体中,这是有原因的吗?我会把它变成一个答案。
-
@Dan 实际上,数据是在 MVC 控制器上发送的,man、size 和 color 是控制器的参数。我当然会尝试你的解决方案
-
仍然没有运气:( 不会那么困难
标签: jquery arrays ajax asp.net-mvc