Javascript:如何通过ajax访问从控制器导入的数据?
问题描述:
我是初学者,我需要从视图中的控制器MVC到Javascript获取对象“Event”(OrderId,Date)的列表,它像一个字符串列表,它显示我“未定义”。 在控制器的一侧,我看到它是正确的! 我搜索了,我没有发现我的错误,我试着用#和没有foreach,但我认为这不是真的,所以谢谢你帮助我!Javascript:如何通过ajax访问从控制器导入的数据?
控制器:
[System.Web.Mvc.HttpGet]
public JsonResult getListEvent() {
IList<Event> ListEvent = new List<Event>();
ListEvent = DeserializeElement();
return Json(new { ListEvent = ListEvent }, JsonRequestBehavior.AllowGet);
}
private List<Event> DeserializeElement() {
List<Event> lt = new List<Event>();
document.Load("eventXml.xml");
foreach (XmlNode item in document.DocumentElement.ChildNodes) {
Event e = new Event();
e.OrderId = int.Parse(item.Attributes[0].Value);
e.Date = Convert.ToDateTime(item.Attributes[1].Value);
lt.Add(e);
}
return lt;
}
和视图:
function GetListEvent() {
debugger;
$.ajax({
type: "GET",
url: "Home/getListEvent",
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function (data) {
debugger;
alert(data[0].OrderId);
alert('#'+ data[1].Date);
for (var item in data) {
alert('#' + data[item]);
}
},
error: function (response) {
debugger;
alert('eror');
}
});
}
答
非常感谢你,但搜索后,我发现它是在另一个物体,
所以,我必须写:
alert(data.ListEvent[0].OrderId);
而不是
alert(data[0].OrderId);
我不需要“#”;