显示从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。