[英]Access Json objects data returned by Controller in MVC 4
我在想办法访问从控制器返回的以下json时遇到麻烦:
[{"ID":1,"seatnum":"A1","status":0},{"ID":2,"seatnum":"A2","status":0}]
我正在尝试访问每个seatnum值(A1,A2)以执行以下功能:
$.ajax({
url: 'seats/getseats',
dataType: "JSON",
error: function (data) {
$("table tr img").removeClass("available").attr("src", "images/taken.gif");
alert("error")
}
}).done(function (data) {
for (var i = 0; i < data.length; i++) {
//alert(data[i].seatnum);
var seatLetter = data[i][0];
var seatNumber = data[i].substr(1);
var $target = getImgFromSeat(seatLetter, seatNumber);
$target.removeClass("available").attr("src", "images/taken.gif");
}
如果有帮助,我的Controller方法是:
//
// GET: /seats/
public ActionResult Index()
{
return View(db.seats.ToString());
}
public JsonResult getseats()
{
var taken = from b in db.seats
select b;
taken = taken.Where(b => b.status.Equals(0));
return Json(taken, JsonRequestBehavior.AllowGet);
}
我相信您正在寻找类似的东西:
$.ajax({
type: "GET",
url: '@Url.Action("getseats")',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: successFunc,
error: errorFunc
});
function successFunc(data, status) {
for (var i = 0; i < data.length; i++) {
//alert(data[i].seatnum);
var seatLetter = data[i][0];
var seatNumber = data[i].substr(1);
var $target = getImgFromSeat(seatLetter, seatNumber);
$target.removeClass("available").attr("src", "images/taken.gif");
}
}
function errorFunc() {
alert('error');
}
返回的json是一个对象数组,因此,与其像data [i] [0]一样访问它,不如像data [i] .seatnum,data [i] .status等访问它。
另外,我建议您使用一些调试工具,例如浏览器开发人员工具,以便可以检查不同对象的值。
PS:请勿对URL值进行硬编码。 而是使用@ Url.Action(“ action-name”)生成它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.