无法访问JSON元素

时间:2012-09-17 05:05:50

标签: javascript json asp.net-web-api

我在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的属性之一(在两者中)。

1 个答案:

答案 0 :(得分:0)

Name可能是其中一个属性,但看起来如果c.MenuId == id一直失败,你永远不会回复任何有用的数据和数据.Options [0]将是未定义的。

就像@zerkms所说,console.log您的传入数据,并检查收到的JSON中的内容。