【发布时间】:2015-03-13 05:54:12
【问题描述】:
我正在尝试在我的应用程序中使用 Web Api。一切似乎都在接受读取 json 数据。下面是我调用 web api 方法的 jQuery 代码,以及变量的值。如您所见,response.d 返回一个未定义的值,而response 实际上有一组值。
这里是web api方法:
public IEnumerable<DiscussionWall> GetDiscussionWallsByCourse(int courseid)
{
gEchoLuDBContext db = new gEchoLuDBContext();
var discussionwalls = db.DiscussionWalls.Where(dw => dw.CourseId == courseid);
if (discussionwalls == null)
throw new HttpResponseException(HttpStatusCode.NotFound);
else
return discussionwalls;
}
为什么在这种情况下我不能简单地使用 response.d?响应格式为{ $id="1", $values=[3] }?如何读取 $values 数组?
【问题讨论】:
-
在这种情况下 d 是什么?您的响应包含一个对象列表。我对吗?尝试对其进行索引。响应[0]
-
@RohitArora、ASP.NET 和 WCF JSON 服务端点实际上将它们的 JSON 包装在一个具有“d”属性的对象中,以规避使用 JSON 时的潜在安全漏洞 (haacked.com/archive/2008/11/20/…)。另外,当我使用
var a = response[0]时,a 是未定义的。 -
WebApi 在响应中不使用
.d。 -
另外,
discussionwalls永远不会为空,但它可以为空。
标签: c# jquery asp.net ajax asp.net-web-api