-1

我在 Win API 控制器中使用以下代码返回一个包含 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);

控制器方法将选项作为“组合”对象的一部分返回(我已经使用断点对其进行了检查)。'Menu' 和 'CourseOption' 是对象,而 'Name' 是它们的字符串类型的属性之一(在这两个属性中)。

4

1 回答 1

0

Name可能是属性之一,但看起来如果c.MenuId == id一直失败,您将永远不会用任何有用的数据进行响应,并且 data.Options[0] 将是未定义的。

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

于 2012-09-17T06:02:56.050 回答