私はこのノックアウトコードを持っています:
var Account = ko.validatedObservable {
ClientID: '',
ConsultantID: '',
AccountNumber: ko.observable(),
Title: ko.observable('Mr'),
Forename: ko.observable(),
Surname: ko.observable().extend({
required: { message: "* Required" },
minLength: 2
}),
Submit: function () {
Account.errors.showAllMessages();
if (this.isValid())
$.ajax({
url: "/Account/CheckClientDetails",
type: 'POST',
dataType: 'json',
data: ko.toJSON(this),
contentType: "application/json; charset=utf-8",
success: function (data) {
Account.ClientID = data.Key;
alert(Account.ClientID);
alert(ko.toJSON(Account));
});
}
};
最初のアラートにはクライアント ID が表示され、2 番目のアラートの JSON には空の文字列が表示されます。
ko.toJSON(Account) を MVC コントローラーに渡します。すべてのプロパティが設定されていますが、ClientID はゼロです。
検証を削除すると (knockout.validation から)、すべてが期待どおりに機能しますが、その機能を失いたくありません!
この変数にデータを入力して値を維持するには、別の方法で何をする必要がありますか?