【问题标题】:Unable to access JSON element无法访问 JSON 元素
【发布时间】:2012-09-09 07:43:05
【问题描述】:

我在 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);

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

【问题讨论】:

  • 如何将数据从 asp 传递到 JavaScript?请给出您构建的 JSON 字符串的完整示例。

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


【解决方案1】:

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

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

【讨论】:

  • 知道了。我必须在 javascript 中以 'alert("In" + data.Menu.CourseOptions[0].Name);' 的形式访问它。 console.log 有帮助。谢谢。
猜你喜欢
  • 2021-06-28
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
  • 2016-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多