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中表示为数组。所以你的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>");
}
});