0

我在发布到 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 函数。

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

先感谢您。

4

1 回答 1

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/

于 2012-05-04T20:06:22.657 回答