2017-09-10 6 views
1

私は初心者で、コントローラの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'); 
     } 
    }); 
} 

答えて

0

はどうもありがとうございましたが、検索した後、私は私がしなければならないので、それは別の内のオブジェクトであることを

を発見書く:

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

ではなく

alert(data[0].OrderId); 

と「#」は必要ありません。

関連する問題