【发布时间】:2018-02-05 20:32:33
【问题描述】:
我正在使用 jQuery 的 AJAX 方法调用 C# 服务以返回 JSON 序列化列表。
[HttpPost]
public JsonResult SearchTicket(ViewModelTicket ticket) {
var list = UnitOfTicket.Where(x =>x.TicketId == ticket.TicketId);
return Json(new { list }, JsonRequestBehavior.AllowGet);
}
我从成功回调函数中解析响应并将其呈现为 HTML。
$.ajax({
type: "POST",
url: url,
data: JSON.stringify(Ticket),
dataType: "json",
contentType: 'application/json; charset=utf-8',
success: function (list) {
var data = list;
for (var i in data) {
alert(JSON.stringify(data[i]));
$('#tbody-element').append(
'<tr>' +
'<td>' + data[i].TicketId + '</td>' +
'<td>' + data[i].Title + '</td>' +
'<td>' + data[i].PriorityId + '</tr>' +
'<td>' + data[i].OpenDateAndTime + '</tr>' +
'<td>' + data[i].SlaExpiration + '</td>' +
'</tr>'
);
}
},
error: function () {
alert("Error occured!!")
}
});
响应显示在警报中:
[{"TicketId":1,"OpenDateAndTime":"/Date(1517833557277)/","ClosedDateTime":null,"VersionId":140,"PriorityId":2,"CompanyId":0,"UserId":null,"Rate":null,"SlaExpiration":null,"TicketTypeId":1,"StatusId":1,"ProductId":1,"SubProductId":1,"TaskId":1,"Title":"Primeiro Chamado","Files":null}]
我的问题是渲染一个未定义值的对象。例如:data[i].Title ...
【问题讨论】:
-
测试是否未定义 -
if (data[i]) { ... } else { ..} -
而且您只需要对象的 5 个属性,因此您应该只返回这 5 个属性,而不是所有属性
标签: javascript jquery asp.net-mvc