Javascript:如何使用ajax访问从控制器导入的数据?

时间:2017-09-10 20:54:23

标签: javascript ajax list view controller

我是初学者,我需要在视图中从控制器MVC到Javascript获取对象“Event”(OrderId,Date)的列表,它就像一个字符串列表,它显示我“未定义”。 在控制器的一侧,我看到它是正确的! 我搜索过,我没有发现我的错误,我尝试使用#而且没有使用foreach,但我认为这不是真的,所以谢谢你帮我!

控制器:

[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');
        }
    });
}

1 个答案:

答案 0 :(得分:0)

非常感谢,但在搜索后我发现它是另一个对象,

所以,我必须写:

alert(data.ListEvent[0].OrderId);

而不是

alert(data[0].OrderId);

我不需要“#”;