JSON的敲除foreach数据绑定不返回任何值

JSON的敲除foreach数据绑定不返回任何值,json,knockout.js,asp.net-web-api,Json,Knockout.js,Asp.net Web Api,您好,我正在开发简单的web,使用带敲除的web api。我想显示Json结构中的数据列表 function OrganisationViewModel() { var self = this; self.Organisations = ko.observableArray(); var baseUri = '@ViewBag.ApiUrl'; $.getJSON(baseUri, self.Organisatio

您好,我正在开发简单的web,使用带敲除的web api。我想显示Json结构中的数据列表

    function OrganisationViewModel() {
         var self = this;
         self.Organisations = ko.observableArray();

         var baseUri = '@ViewBag.ApiUrl';
         $.getJSON(baseUri, self.Organisations);


     }
     $(document).ready(function () {
         ko.applyBindings(new OrganisationViewModel());

     })
上面的代码是获取JSON并将其设置为可观察数组

<div>
    <ul id="update-Org" data-bind="foreach: Organisations">
        <li>
            <div>
                <span data-bind:"text: $data.Name"></span>
            </div>
            <div>
                <span data-bind:"value: $data.PhoneNumber"></span>
            </div>
        </li>
    </ul>
</div>

尝试将getJSON替换为以下内容:

$.getJSON(baseUri, function( data ) {
    self.Organisations(data);
});

我怀疑您当前的getJSON函数用普通数组覆盖了ObservalArray。

可能是我,但我无法获取您的json数据。你能把它格式化吗?另外,我要改变的一点是检索json数据的方式。您总是在响应中获取所有数据,是否有必要在新的ajax请求中获取数据?您可以在服务器端对其进行格式化(json.net可能很有用),然后直接将其分配给js变量。唯一的区别是我使用的是edmx(模型优先)数据,而不是代码优先。请检查浏览器的JavaScript控制台!有什么错误吗?retrun是我最常见的拼写错误return的方式:D
$.getJSON(baseUri, function( data ) {
    self.Organisations(data);
});