0

こんにちは、私は 3 層アーキテクチャに従うプロジェクトを持っています。mvc 4 を使用する Web アプリケーションでノックアウト バインディングを使用しようとしていますが、データはデータ層から取得されますが、UI は更新されていません。以下は私のコードスニペットです

別のクラス ライブラリであるデータ層に存在するモデル

public int SocialProfileId { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string Url { get; set; }
public string ImgUrl { get; set; }

私の Web プロジェクトのビュー モデル var SocialViewModel = function () { var self = this;

self.Title = ko.observable("");

self.SocialLinks = ko.observableArray();

GetSocialLinks();

function GetSocialLinks() {
    $.ajax({
        type: "GET",
        url: "Ville/SocialLnk",
        contentType: "application/json; charset=utf-8",
        dataType: "json",

        success: function (data) {
            self.SocialLinks(data);
            alert(data[0]);
        },

        error: function (error) {
            alert(er.status + "<--and-->" + erro.statusText);
        }
    });
}
}

私のバインディングを示す私のビュー

<ul class="bl-socialLink" data-bind="foreach: SocialLinks">
<li>
    <p data-bind="text: Title"></p>
    <a data-bind="attr: { title: Title, href: Url}" target="_blank">
        <img data-bind="attr: { alt: Title, src: ImgUrl }" />
    </a>
</li>

UI に情報を表示するにはどうすればよいですか? ビューに値が表示されない理由がわかりません。ありがとう

4

1 に答える 1

1

バインディングを適用していますか?コードサンプルには表示されません

ko.applyBindings(SocialViewModel);

ここでトラブルシューティング戦略を確認することもお勧めします

「前」の例は非常に役立ちます。

<pre data-bind="text: ko.toJSON($data, null, 2)"></pre>
于 2013-06-22T05:08:21.707 に答える