我有这个Knockout代码:
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,第二个警报中的JSON显示空字符串!
我将ko.toJSON(帐户)传递给MVC控制器,每个属性都被填充但ClientID为零。
如果我删除验证(来自knockout.validation),一切都按预期工作 - 但我不想失去这个功能!
我需要做些什么来填充此变量并保持值?
答案 0 :(得分:0)
想出来。
使用验证将Account视图模型转换为方法。我将代码更改为:
Account().ClientID(data.Key);
alert(Account().ClientID());
alert(ko.toJSON(Account()));
它现在有效。