Javascript 如何将Jquery Ajax Json响应绑定到下拉列表?

Javascript 如何将Jquery Ajax Json响应绑定到下拉列表?,javascript,jquery,json,ajax,Javascript,Jquery,Json,Ajax,我正在尝试从一个对下拉列表的Ajax调用填充Json响应,并在下拉列表中绑定名称和用户ID。下拉列表值全部显示未定义。我做错了什么?你能帮忙吗 下拉式分区- <div class="row form-group spacer"> <div class="col-md-12"> <div class="

我正在尝试从一个对下拉列表的Ajax调用填充Json响应,并在下拉列表中绑定名称和用户ID。下拉列表值全部显示未定义。我做错了什么?你能帮忙吗

下拉式分区-

<div class="row form-group spacer">
                            <div class="col-md-12">
                                <div class="col-md-12">
                                    @Html.Label("Recipients")
                                    <select id="commentrecipients" class="dirtyignore" name="commentrecipients"></select>
                                </div>
                            </div>
                        </div>

尝试添加数据类型:“json”并删除“数据:。。。大概是这样的:

$.ajax({
    type: "GET",
    url: "/Submission/SecurityGroupsUsersAccessRight",
    dataType: "JSON",
    success: function (data) {

        var s = '<option value="-1">Please Select a Recipient</option>';
        for (var i = 0; i < data.length; i++) {
            s += '<option value="' + data[i].UserID + '">' + data[i].Name + '</option>';
        }
        $("#commentrecipients").html(s);
    }
}); 
$.ajax({
键入:“获取”,
url:“/Submission/SecurityGroupsUserAccessRight”,
数据类型:“JSON”,
成功:功能(数据){
var s='请选择一个收件人';
对于(变量i=0;i
请尝试使用驼峰案例属性名称:-

s += '<option value="' + data[i].userID + '">' + data[i].name + '</option>';
s+=''+数据[i].名称+'';
$.ajax({
键入:“获取”,
url:“/Submission/SecurityGroupsUserAccessRight”,
数据:{
身份证号码:214
},
数据类型:“json”,
成功:功能(数据){
$.each(data.d,function(i,val){
var s='请选择一个收件人';
s+=''值名称+'';
}
$(“#收件人”).html;
}
}); 

您需要解析JSON数据以获取对象,然后循环它

ajax({
        type: "GET",
        url: "/Submission/SecurityGroupsUsersAccessRight",
        data: {
            id: 214
        },
        success: function (data) {
            let response = JSON.parse(data);
            var s = '<option value="-1">Please Select a Recipient</option>';
            for (var i = 0; i < response.length; i++) {
                s += '<option value="' + response[i].UserID + '">' + response[i].Name + '</option>';
            }
            $("#commentrecipients").html(s);
        }
    }); 
ajax({
键入:“获取”,
url:“/Submission/SecurityGroupsUserAccessRight”,
数据:{
身份证号码:214
},
成功:功能(数据){
让response=JSON.parse(数据);
var s='请选择一个收件人';
对于(变量i=0;i
@Partha,您正在通过“id:214”到服务获取匹配记录的结果。如果删除id:214,它不会破坏功能吗?@Ayaz-是的,它会。在实际代码中,我动态传递id,而不是对其进行硬编码。删除调用参数是不相关和混乱的。只需将
数据类型设置为预期格式,以便转换数据用jquery而不是用
JSON.parse这是一个很好的方法!我喜欢这样。我删除了代码中的显式解析,并遵循您的方法。谢谢。
data=“…
您的数据是字符串,而不是JSON。问题是——没有解析响应。
s += '<option value="' + data[i].userID + '">' + data[i].name + '</option>';
$.ajax({
    type: "GET",
    url: "/Submission/SecurityGroupsUsersAccessRight",
    data: {
        id: 214
    },
    dataType: "json",
    success: function (data) {
        $.each(data.d, function (i, val) { 
            var s = '<option value="-1">Please Select a Recipient</option>';
            s += '<option value="' + val.UserID + '">' + val.Name + '</option>';
        }
        $("#commentrecipients").html(s);
    }
}); 
ajax({
        type: "GET",
        url: "/Submission/SecurityGroupsUsersAccessRight",
        data: {
            id: 214
        },
        success: function (data) {
            let response = JSON.parse(data);
            var s = '<option value="-1">Please Select a Recipient</option>';
            for (var i = 0; i < response.length; i++) {
                s += '<option value="' + response[i].UserID + '">' + response[i].Name + '</option>';
            }
            $("#commentrecipients").html(s);
        }
    });