[英]MVC5 Returning a Generic List of Objects via Jquery Ajax
我正在嘗試通過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);
}
這是我要返回的我的Dropdown類
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);
}
那里也沒有成功。 我究竟做錯了什么 ?
提前致謝...
1.您正在從服務器返回JSON。 您必須將Ajax請求中的dataType
設置為json
contentType->數據發送到服務器
dataType->服務器返回的數據
$.ajax({
type: "GET",
url: url,
data: JSON.stringify({ listname: listname }),
contentType: "application/json; charset=utf-8",
//HERE
dataType: 'json',
success: function (result) {
alert(result[0].value);
},
error: function (xhr, status, err) {
alert(err.toString(), 'Error - LoadListItemsHelper');
}
});
2。
你回來了
return new Json(new {list = retval}, JsonRequestBehavior.AllowGet);
success: function(result)
您可以像這樣訪問列表: result.list[index]
success: function (result) {
for(var i =0; i < result.list.length; i++){
alert(result.list[i].value);
alert(result.list[i].status);
}
}
編輯基於Aivan Monceller的評論,你可以這樣做:
發送GET
您不需要
contentType: "application/json; charset=utf-8",
因此,您可以這樣編寫Ajax:
$.ajax({
type: "GET",
url: url,
data: { listname: listname },
//HERE
dataType: 'json',
success: function (result) {
alert(result[0].value);
},
error: function (xhr, status, err) {
alert(err.toString(), 'Error - LoadListItemsHelper');
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.