Javascript 选择2返回项目的位置,而不是项目的ID

Javascript 选择2返回项目的位置,而不是项目的ID,javascript,asp.net-mvc,jquery-select2,Javascript,Asp.net Mvc,Jquery Select2,我使用select2允许用户选择多个选项。除了一个令人沮丧的问题外,一切正常 我第一次单击save按钮保存项目时,它起作用了。但在随后的调用中,项目的ID将替换为项目的位置。例如,如果我选择了ID 3、6和10,则第一次保存将起作用,并将3、6、10传递给控制器 但是,如果我重新加载视图并单击“保存”,则会传入数字0、1、2(即它们在选择框中的相对位置) 代码如下: 首先,HTML: <select id="selectGroup" class="form-c

我使用select2允许用户选择多个选项。除了一个令人沮丧的问题外,一切正常

我第一次单击save按钮保存项目时,它起作用了。但在随后的调用中,项目的ID将替换为项目的位置。例如,如果我选择了ID 3、6和10,则第一次保存将起作用,并将3、6、10传递给控制器

但是,如果我重新加载视图并单击“保存”,则会传入数字0、1、2(即它们在选择框中的相对位置)

代码如下:

首先,HTML:

<select id="selectGroup" class="form-control" multiple="true">

为犯同样错误的人发帖

问题出在我的加载中-我需要添加GroupID作为键,而不是键参数值中的行号:

        success: function (data) {
            $.each(JSON.parse(data), function (key, entry) {
                var $newOption = $("<option selected='selected'></option>").val(entry.GroupID).text(entry.GroupName);
                $("#selectGroup").append($newOption).trigger('change');
            }
成功:函数(数据){
$.each(JSON.parse(数据)、函数(键、条目){
var$newOption=$(“”).val(entry.GroupID).text(entry.GroupName);
$(“#selectGroup”).append($newOption).trigger('change');
}
function LoanGroupSave(loanID) {

    var grpIDs = '';
    [].forEach.call(document.querySelectorAll('#selectGroup :checked'), function (elm) {
        grpIDs += elm.value + ',';
    })

    var editURL = location.protocol + '//' + location.host + "/Loan/LoanGroupSave";
    //alert(editURL);

    var obj = { "LoanID": loanID, "GroupIDs": grpIDs };

    alert(JSON.stringify(obj));

    $.ajax({
        type: "POST",
        url: editURL,
        data: JSON.stringify(obj),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
    }).done(function (response) {
        if (response.success) {
            Notify("Group(s) information has been saved", "Saved", "success", false, "toast-top-right", 5000);
        }
        else {
            OpenPopupGeneral("Error(s)", response.message);
        }
    }).fail(function (jqXHR, textStatus, errorThrown) {
        OpenPopupGeneral("Unexpected Error(s)", "Error = " + errorThrown);
    });

}
        success: function (data) {
            $.each(JSON.parse(data), function (key, entry) {
                var $newOption = $("<option selected='selected'></option>").val(entry.GroupID).text(entry.GroupName);
                $("#selectGroup").append($newOption).trigger('change');
            }