将jQuery数组发送到MVC4控制器
我一直在寻找一种方法来实现这一点,我已经查看了这里发布的几个问题,但我无法获得我想要的数组的所有元素。这是我正在发送的阵列:将jQuery数组发送到MVC4控制器,jquery,asp.net-mvc,json,Jquery,Asp.net Mvc,Json,我一直在寻找一种方法来实现这一点,我已经查看了这里发布的几个问题,但我无法获得我想要的数组的所有元素。这是我正在发送的阵列: function myFunction(e) { var containerChildren = $("#active").children(); for (i = 0; i < containerChildren.length; i++) { var announcementarray = new Arr
function myFunction(e) {
var containerChildren = $("#active").children();
for (i = 0; i < containerChildren.length; i++) {
var announcementarray = new Array();
announcementarray[i] = $('#' + containerChildren[i].id).data("id");
alert(announcementarray[i]);
}
$.ajax({
data:
{
activeid: announcementarray
},
datatype: 'json',
url: '/HumanResources/Announcement/AnnouncementActive',
cache: false,
type: 'POST',
traditional: true,
error: function (result) {
alert(result);
},
success: function (result) {
//alert(result);
}
});
}
感谢您的帮助!(我尝试了
传统:true
,.serialize()
等)您正在为第一个选择器中的每个子元素重新创建数组。
试着这样做:
function myFunction(e) {
var announcementarray = [];
$("#active").children().each(function() {
announcementarray.push($(this).data("id"));
});
$.ajax({
data:
{
activeid: announcementarray
},
datatype: 'json',
url: '/HumanResources/Announcement/AnnouncementActive',
cache: false,
type: 'POST',
traditional: true,
error: function (result) {
alert(result);
},
success: function (result) {
//alert(result);
}
});
}
您正在为第一个选择器中的每个子元素重新创建数组。 试着这样做:
function myFunction(e) {
var announcementarray = [];
$("#active").children().each(function() {
announcementarray.push($(this).data("id"));
});
$.ajax({
data:
{
activeid: announcementarray
},
datatype: 'json',
url: '/HumanResources/Announcement/AnnouncementActive',
cache: false,
type: 'POST',
traditional: true,
error: function (result) {
alert(result);
},
success: function (result) {
//alert(result);
}
});
}
从$.children()返回的元素;也是jQuery对象,因此这可以做得更好一些。查看我的更新。这看起来不那么令人困惑。谢谢你把它清理干净。但是,每当我运行它时,我都会收到一个运行时错误,说它无法识别“数据”(这是html“data-*”中的一个属性,我将把您的响应标记为答案,但我发现了错误。我在for循环中声明了数组。取出后,它就像一个符咒一样工作!!感谢您的反馈!从$.children()返回的元素);也是jQuery对象,因此这可以做得更好。请参阅我的更新。这看起来不那么令人困惑。感谢您清理它。但是,每当我运行它时,我都会收到一个运行时错误,说它无法识别“数据”(这是html“data-*”中的一个属性,我将把您的响应标记为答案,但我发现了错误。我将数组声明放在for循环中。取出后,它就像一个符咒一样工作!!感谢您的反馈!发现错误:数组声明在for循环中。取出后,问题得到修复!发现错误:dec数组的放大在for循环的内部。将其取出后,问题得到解决!