显示从Asp.Net MVC中的Controller返回的JSON数组数据
我的控制器中有一个动作方法;
public ActionResult IndexWithJson(int Id, int? page) { int pageSize = 2; int pageNumber = (page ?? 1); using (var adsRepo = new AdvertisementRepository()) { if (Id > 0) { return Json(new{ Data = adsRepo.GetAdvertisementBySubCategoryId(Id).ToPagedList(pageNumber, pageSize) }, JsonRequestBehavior.AllowGet); } else { return View("404"); } } }
浏览器中的结果输出是; 正如您在图片中看到的那样,我将数据(在控制器中)与一个名为“Data”的对象进行包装。
现在当我用这样的jQuery调用它时;
var serviceBase = "/catalog/"; $.ajax({ url: serviceBase + 'IndexWithJson', contentType: 'application/json; charset=utf-8', dataType:'json', data: { Id: categoryId, page: page }, success: function (data) { alert(data.Title); } });
我在警告框中看到null。
这里有什么问题?
如何在警告框中实际显示一个属性(请参阅属性图片)。
我的dataType属性是否在jQuery ajax函数中正确? (我想它应该是JSONP
试试这个:
data.Data[0].Title
这应该是有效的
尝试
alert(data[0].Title)
这是一个arrays。
要显示所有你可以做这样的事情:
$.each(data, function(index, value) { $('#somediv').append(value.Title); });
我认为你需要使用JSON.stringify来发送参数(在你的ajax调用中给控制器。有点像
data:JSON.stringify({Id:categoryId,page:page}),
您是否正确地在控制器端获得Id和页面值? 我认为你的ajax调用结果是null,即客户端的data = null。