【发布时间】:2013-03-28 17:02:21
【问题描述】:
我的控制器中有一个操作方法:
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
【问题讨论】:
-
你的页面的 url(javascript 在哪里)和你的 mvc 站点的 url 是什么?他们在同一个域+端口上吗?
-
是的,在同一个域/站点上。
-
查看 var serviceBase = "/catalog/";我更新了问题
-
看起来它是一个具有属性 Data 的对象,它是一个对象数组。试试
data.Data[0].Title。 -
尝试将整个返回字符串化,看看里面有什么:alert(JSON.stringify(data))
标签: c# asp.net-mvc json jquery asp.net-mvc-4