我有一个简单的方法,它创建一个对象列表 Team,将其转换为 Json,然后返回它。
public ActionResult Index()
{
var teams = new List<Team>() {
new Team{ Name = "Caracas F.C", City = "Caracas", Id = 1},
new Team{ Name = "Millonarios", City = "Bogota", Id = 2},
new Team{ Name = "Independiente", City = "Bogota", Id = 3}};
var jsonData = new { teamsData = teams };
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
当我去那个网址(http://prototypeteam.apphb.com/,自己检查一下),我可以清楚地看到 Json
{"teamsData":[{"Id":1,"Name":"Caracas FC","City":"Caracas"},{"Id":2,"Name":"Millonarios","City": "波哥大"},{"Id":3,"Name":"Independiente","City":"Bogota"}]}
但是当我尝试使用 JQuery 获取 Json 时,它会返回而没有响应:
self.allTeams = ko.observableArray();
$.getJSON("http://prototypeteam.apphb.com/", function (data) {
var mappedTeams = $.map(data.teamsData, function (item) {
return new TeamViewModel(item);
});
self.allTeams(mappedTeams);
});
TeamViewModel = function (data) {
self = this;
self.Id = data.Id;
self.Name = data.Name;
self.City = data.City;
}
这就是我使用 Mozilla 的 Firebug 所得到的。
如果有人可以帮助我理解为什么会这样。我不明白为什么我在 URL 上清楚地看到了 Json,但 JQuery 似乎不明白发生了什么。谢谢。