我试图通过jQuery Ajax来检索对象的列表MVC5通过jQuery的Ajax返回对象的泛型列表
我有这样一个控制器方法:
[HttpGet]
public JsonResult GetAllStates(string listname = "")
{
clsDdl ddl = new clsDdl();
List<clsDdl> retval = new List<clsDdl>();
ddl.id = "1";
ddl.value = "Dropdown1";
ddl.status = "DDL Status";
ddl.attributes = "First Dropdown Text";
retval.Add(ddl);
//return retval;
return Json(new
{
list = retval
}, JsonRequestBehavior.AllowGet);
}
我的继承人下拉类,我我试图在我看来返回
public class clsDdl
{
public string id { get; set; }
public string value { get; set; }
public string status { get; set; }
public string attributes { get; set; }
}
代码看起来像这样
function LoadListItems (options) {
var listname = options.listname;
$.ajax({
type: "GET",
url: url,
data: JSON.stringify({
listname: listname
}),
contentType: "application/json; charset=utf-8",
async: true,
success: function (result) {
alert(result[0].value);
},
error: function (xhr, status, err) {
alert(err.toString(), 'Error - LoadListItemsHelper');
}
});
我的控制器操作正在进行中。但警报总是“未定义”。 我也试过
success: function (data) {
var result = data.d;
for (var i = 0; i < result.length; i++) {
alert(result[i].attributes);
}
没有成功。我究竟做错了什么 ?
在此先感谢...
看起来你是一个命名的属性称为列表内返回JSON 。你为alert(data.list)获得了什么;'? –
我加了这个代码 成功:function(data){ var result = data.list; alert(data.list); 警报(结果。长度); 警报是'未定义'第二个警报给出错误'无法获取属性长度'的未定义或空引用 – w2olves
当你在浏览器中收到json时,你可以分析响应,如果它有一些东西,如果是空的应该开始也看到为什么不正确返回到视图 –