0

我有这个淘汰赛代码:

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(Account) 传递给 MVC 控制器,每个属性都已填充,但 ClientID 为零。

如果我删除验证(它来自 knockout.validation),一切都会按预期工作 - 但我不想失去该功能!

我需要做些什么来填充这个变量并保持这个值?

4

1 回答 1

0

弄清楚了。

使用验证将 Account 视图模型转换为方法。我将代码更改为:

Account().ClientID(data.Key);
alert(Account().ClientID());
alert(ko.toJSON(Account()));

现在它可以工作了。

于 2013-06-12T16:14:48.710 回答