我正在使用jQuery来消耗我的行为。
$.ajax({ url: '',
data: 'json',
type: 'post',
dataType: options.dataType,
async: false,
success: function (obj) { returnValue = obj; }
});
现在...
如果我退回这个......
var test1 = Json(new { Message = "Any message here.", Status="True" });
我的Ajax调用的返回只是很好..
但是......如果我退回这个(EF的用户列表)
var test2 = Json(IoC.Resolve<IUserService>().GetUsers());
我将得到undefined / 500(内部服务器错误)。
现在的问题是如何从对象中正确返回JSON,以便jQuery ajax可以正确读取它?
由于
答案 0 :(得分:1)
利
从未见过用法:
var test2 = Json(IoC.Resolve<IUserService>().GetUsers());
之前我不打算发表评论。但是,你可以只使用.ToList()添加到statament的末尾,即:
var test2 = Json(IoC.Resolve<IUserService>().GetUsers().ToList());
问题的原因是由于您在尝试填充json对象之前尚未枚举对象,因此您遇到各种延迟和对象引用问题。通过添加ToList()可以缓解这些问题,因为对象在到达Json()方法之前是完全枚举的。
它可能会起作用,......或者直接爆炸:)
答案 1 :(得分:0)
public ActionResult MethodName(){
var returnList = IoC.Resolve<IUserService>().GetUsers().ToList();
retun JSON(returnList,JSONRequestBehaviour.AllowGet);
}
jQuery函数
success: function (obj) {
alert(obj.d.ListProperty);
// you can access all the properties you have in the list.
}