Ajax帖子不会将数据填充到下拉列表选择列表中

时间:2012-05-04 19:46:45

标签: c# javascript jquery ajax model-view-controller

我错过了发布到ActionMethods以在此处提取数据的内容吗?

我需要对ActionMethod进行一个简单的javascript / jquery调用,该调用将使用来自我的类​​型为IQueryable(或List)的Json对象的数据填充我的下拉菜单。

所以我尝试了两个选择:

    function populateuUsers(id) {
    $.post("/User/GetUsersJson/", { id: id }, function (data) {
        if ($.isEmptyObject(data)) {
            alert("Empty");

        }

        $.each(data, function (item) {
            alert(item);
            $("#user-list").append(
                $("<option></option>").text(data[item].FullName).val(data[item].Id)
                );
        });

    }, "json");
}

我收到“数据未定义”的错误

然后我尝试了:

    function populateUsers(id) {
    $.ajax({
        type: 'post',
        datatype: 'json',
        url: "/User/GetUsersJson/" + id,
        success: function (data) {
            alert(data);
            $.each(data, function (item) {
                alert(item);
                $("#users-list").append(
                    $("<option></option>").text(data[item].FullName).val(data[item].Id));

            });
        },
        error:function()
            {
                alert(data);
            }

    });
}

也不起作用。 需要注意的事项......我设置了断点并确认了GetUsersJson Action方法中的数据用户控制器被正确填充并返回到javascript函数。

为什么它不起作用呢?为什么“数据未定义”并且它的行为就像没有返回?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

在您传递给$.each的匿名函数中,未定义data。相反,您应该将两个变量传递给该函数。类似的东西:

$.each(data, function (key, item) {
    alert(item);
    $("#users-list").append(
        $("<option></option>").text(item.FullName).val(item.Id));

});

http://api.jquery.com/jQuery.each/