2013-06-12 70 views
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(帐户)传递给MVC控制器,每个属性都已填充,但ClientID为零。

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

我需要做什么不同来填充此变量并保持该值?

回答

0

想通了。

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

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

它现在可以工作。

+0

我会,但我必须等待2天显然 –

+0

啊,新帐户。感谢Rob。 –