使用Jquery发送数组

时间:2016-03-28 23:11:20

标签: javascript jquery asp.net-mvc

$('[data-toggle="mftapproveCheck"]').click(function () {


    var selected = $("#checkboxes input:checked").map(function (i, el) { return el.value; }).get();
   //alert("selected = [" + selected + "]\nas int = \"" + selected.join(";") + "\"");

    var url = $(this).data("url") + "/" + selected;
    var title = $(this).data("title");


        callback: function (result) {
            if (result) {
                $("#preLoader").fadeIn('fast');
                $.post(url, function (json) {
                    if (json.IsComplete) {
                        $("#" + id).remove();
                        BSToastr.show("success", "Başarılı", "İşleminiz Başarıyla Gerçekleştirildi.");
                    }
                    else {
                        BSToastr.show("error", "Hata", "İşleminiz Gerçekleştirilemedi.");
                    }
                    $("#preLoader").fadeOut('fast');
                });
            }
        }
    });


});

我试图将selected发送给控制器。当只有1 Id出现时,这种方法很有效但警惕总是有效。我如何从这里发送数据?

public ActionResult ApproveSelected(int[] selected)
    {
        var itema = selected;
        var itemb = itema;
        try
        {

            var AllParticipants = Db.Participants
            .Where(m => selected.Contains(m.Id))
            .OrderBy(m => m.Id)
            .ToList();

            for (int i = 0; i < AllParticipants.Count; i++)
            {

                var item = AllParticipants.First();
                item.Approval = true;

                var itemRemove = AllParticipants.First();
                AllParticipants.Remove(item);

            }

            Db.SaveChanges();
        }
        catch
        {
            return Json(new { IsComplete = false });
        }

        return Json(new { IsComplete = true });
    }

1 个答案:

答案 0 :(得分:0)

由于此行,您未发送列表:

var url = $(this).data("url") + "/" + selected;

只是在没有实际转换它的情况下结束selected。如果您查看alert,则实际上是通过join函数将其转换为字符串,这就是您查看所有项目的原因。

selected.join(";"); // <-- used in your alert()

所以我建议您在设置join变量时使用相同的url来电:

var url = $(this).data("url") + "/" + selected.join(";");