2011-09-15 72 views
0

我阿賈克斯塊看起來像這樣:JSON結果從MVC使用Ajax沒有顯示

$('#btnTest').click(function(){ 
     $.getJSON('/User/ViewMessages',function(result) { 
      // TODO: update the DOM with the items 
      $("table#tblMessages").append("<tr><td>"+result.MESSAGETEXT+"</td><td>"+result.DATESENT+"</td>"); 
     }); 
    }); 

我在我的控制器動作看起來像這樣:

 public ActionResult ViewMessages() 
    { 
     var recipient = Convert.ToInt32(HttpContext.Session["User_Id"]); 
     var query = (from m in context.Messages 
        from rec in context.Recipients 
        where rec.RECIPIENT == recipient 
        where rec.MESSAGEID == m.MESSAGEID 
        select new 
        { 
         m.MESSAGETEXT, 
         m.DATESENT 
        }).ToList(); 
     return Json(query.ToList()); 
    } 

調試時,我的查詢變量的回報: {MESSAGETEXT =「seresr」,DATESENT = {2011年9月15日11時06分45秒}}

事情是,我的表是添加「undefined」爲我的價值觀。我哪裏出錯了?我已經添加了maproute,但我仍然運氣不佳。

回答

1

它看起來像你正在返回一個列表,它將以JSON形式表示爲一個數組。所以你的result對象是一個JavaScript數組而不是單個對象。要通過所有的項目循環,並添加一個錶行的每個,嘗試這樣的事情:

$.getJSON('/User/ViewMessages', function(result) { 
    for (var i in result) { 
     var row = result[i]; 
     $("table#tblMessages").append("<tr><td>" + row.MESSAGETEXT 
      + "</td><td>" + row.DATESENT + "</td>"); 
    } 
}); 
+0

/捂臉時刻,謝謝你。 –