【发布时间】:2015-10-18 23:01:17
【问题描述】:
我在将返回的字典对象列表获取到 Jquery 时遇到问题。我的要求是用我从 mvc 控制器中的 GetUser() 获得的用户列表填充 userOptions 数组。以下 $.ajax 调用返回错误。
var userOptions = new Array();
$.ajax({
url: '/User/GetUsers',
type: 'GET',
dataType: "json",
contentType: 'application/json; charset=utf-8',
async: false,
cache: false,
success: function(data){
$.each(data, function (id, user){
userOptions.push(user.NAME);
});
alert(userOptions);
},
error: function(xhr){
alert("Error:" + "Failed to retrieve.");
}
});
下面是mvc Controller中的方法。来自 jquery 的 $.ajax 调用命中此方法,该方法也按预期返回用户列表,但是,在 jquery success: function(data) 中失败并且 error: function(xhr ) 显示出来。
[HttpGet]
public JsonResult GetUsers()
{
List<tblUsers> usersList = userContext.Users;
var users = new List<Dictionary<Guid, string>>();
foreach (var u in usersList)
{
var userObj = new Dictionary<Guid, String>();
userObj.Add(u.ID, u.NAME);
users.Add(userObj);
}
return Json(new { JsonUsers = users }, JsonRequestBehavior.AllowGet);
}
我还将 $.ajax 调用替换为以下 $.getJSON 调用。结果是一样的。它没有成功 - 没有返回任何内容。
var userOptions = new Array();
$.getJSON("/User/GetUsers",
function( data ){
$.each(data, function (id, user){
optionValues.push(user.NAME);
});
alert(userOptions);
});
我在这里缺少什么?感谢您的帮助。谢谢!
【问题讨论】:
标签: jquery ajax asp.net-mvc