我错过了发布到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函数。
为什么它不起作用呢?为什么“数据未定义”并且它的行为就像没有返回?
提前谢谢。
答案 0 :(得分:0)
在您传递给$.each
的匿名函数中,未定义data
。相反,您应该将两个变量传递给该函数。类似的东西:
$.each(data, function (key, item) {
alert(item);
$("#users-list").append(
$("<option></option>").text(item.FullName).val(item.Id));
});