Json结果从MVC与Ajax是不显示

本文关键字:显示 Ajax 结果 MVC Json | 更新日期: 2023-09-27 18:08:42

我的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 = {9/15/2011 11:06:45 AM}}

问题是,我的表为我的两个值添加了"undefined"。我哪里出错了?我已经添加了maproute,但我仍然没有运气。

Json结果从MVC与Ajax是不显示

看起来您正在返回一个列表,它将在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>");
    }
});