我一直在寻找一种方法来做到这一点,我已经看过这里发布的几个问题,但我无法获得我想要的数组的所有元素。这是我发送的数组:
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);
}
});
}
但是,每当控制器收到此数据时,它只显示具有实际值的最后一个子项,其他所有子项都是undefined
。这是我的控制器的声明
public ActionResult AnnouncementActive(string[] activeid, string[] inactiveid)
{
}
任何帮助表示赞赏! (我已尝试过traditional: true
,.serialize()
等)
答案 0 :(得分:4)
您正在为第一个选择器中的每个子元素重新创建数组。 尝试这样的事情:
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);
}
});
}