我在Win API Controller中使用以下代码返回包含Menu对象和CourseOption对象列表的对象。
public object GetCourseOption(int id) //Here id is Menu id
{
IEnumerable<CourseOption> courseoptions = db.CourseOptions.Where(c => c.MenuId == id);
Menu menu = db.Menus.Single(c => c.Id == id);
if (courseoptions == null)
{
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));
}
var combine = new { Menu = menu, Options = courseoptions };
return combine;
}
我可以使用JavaScript中的以下代码访问“菜单”属性
$.getJSON("/api/CourseOptionAPI/" + id, function (data) {
alert("In " + data.Menu.Name);
});
但无法通过以下代码访问CourseOption属性
alert("In " + data.Options[0].Name);
控制器方法返回Options作为'combine'对象的一部分(我已经使用断点检查了它)。 'Menu'和'CourseOption'是对象,'Name'是其类型为string的属性之一(在两者中)。
答案 0 :(得分:0)
Name
可能是其中一个属性,但看起来如果c.MenuId == id
一直失败,你永远不会回复任何有用的数据和数据.Options [0]将是未定义的。
就像@zerkms所说,console.log
您的传入数据,并检查收到的JSON中的内容。