gpt4 book ai didi

javascript - 将键值对 jquery 数组传递到 .NET MVC 操作中

转载 作者:行者123 更新时间:2023-12-03 05:52:49 25 4
gpt4 key购买 nike

我有一个 jquery 键值对数组,如下所示:

  • 选中复选框后数组将被填充
  • 如果取消选中复选框,项目将从那里删除

该部分的代码是:

  $(document).on('click', '.chkItem', function () {
if ($(this).is(':checked')) {
product_ids[$(this).attr('id')] = "Checked";
} else {
delete product_ids[$(this).attr('id')];
}
});

这很好,让我们进入下一部分。现在,我尝试将所有这些 ID 从我的 View 发送到 Controller “Analyze”和操作“Index”,如下所示:

  $(".btnAnalyze").click(function () {
if (jQuery.isEmptyObject(product_ids) == true) {
alert("Array is empty");
}
else {

var postData = { values: product_ids };

$.ajax({
type: "POST",
url: "/Analyze/Index",
data: postData,
success: function (data) {
alert(data.Result);
},
dataType: "json",
traditional: true
});

}
});

我的操作如下所示:

 public ActionResult Index(List<string> values)
{
string id2= "";
foreach (var id in values)
{
id2= id;
}
// I'm trying to fetch the ID values here that I added into the array, but I'm not sure how...

}

使用当前方法,列表值的内容为

"[object Object]" 

这不是我想要的..当我将它们发送到操作索引时,我需要将所有 ID 很好地整理到列表中...

有人可以帮我解决这个问题吗???

最佳答案

您使用的是一个对象,而不是一个数组,因此它是一个对象。您有两个选择:

  1. 使用实际数组:

    var product_ids = [];
    $(document).on('click', '.chkItem', function () {
    if ($(this).is(':checked')) {
    product_ids.push($(this).attr('id'));
    } else {
    product_ids.splice(product_ids.indexOf($(this).attr('id')), 1);
    }
    });
  2. 继续使用对象并使用 Object.keys 获取属性名称(即代码中的 ID):

    var postData = { values: Object.keys(product_ids) };

就我个人而言,我喜欢#1,因为它更明确地表示您捕获已选中复选框的 id,并且对象属性的值始终为 "Checked" 而不是任何有意义的值,但是嘿,JavaScript 就是这么灵活:)。

关于javascript - 将键值对 jquery 数组传递到 .NET MVC 操作中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40075165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com