2014-02-21 141 views
0

我的視圖模型裏面我有一個包含可觀測值ko.toJSON沒有轉換的JS對象轉換成JSON字符串

var COAData = { 
       ACCOUNT_CODE: self.ACCOUNT_CODE, 
       ACCOUNT_NAME: self.ACCOUNT_NAME, 
       ACCOUNT_DESCRIPTION: self.ACCOUNT_DESCRIPTION, 
       OPENING_BALANCE: self.OPENING_BALANCE, 
       ACCOUNT_DATE: self.ACCOUNT_DATE, 
       MAIN_ACCOUNT: self.MAIN_ACCOUNT, 
       SUB_ACCOUNT: self.SUB_ACCOUNT, 
       CONTROLL_ACCOUNT: self.CONTROLL_ACCOUNT, 
       SUBSIDERY_ACCOUNT: self.SUBSIDERY_ACCOUNT, 
       ACCOUNT_TYPE: self.ACCOUNT_TYPE, 
       VOUCHING_ACCOUNT: self.VOUCHING_ACCOUNT 
      }; 

,我使用以下AJAX功能來發送上述JS對象爲以下JS對象JSON字符串到MVC中的我的控制器,以將數據保存到數據庫中。

self.submitCOA = function() {       
       $.ajax(    
        { 
         type: "post", 
         url: "/ChartOfAccounts/Create",       
         contentType: "application/json", 
         dataType: "json", 
         data: ko.toJSON(COAData), 
         success: function (data) { 
          alert("New Accoungt with Account #" + self.ACCOUNT_CODE(data.ACCOUNT_CODE) + "added successfully"); 
          //GetChartOfAccounts(); 
         },//success function end 
         error: function (error) { 
          alert(error.status + "<!----!>" + error.statusText); 
         }//error function end 
        } 
        );//ajax function end 
      }; 

在調試時,我才知道,ko.toJSON沒有轉換JS對象(COAData)成JSON字符串。而是一個空字符串傳遞給contrller

任何幫助嗎?

+0

也許ko.toJSON(新的COAData) –

回答

0

嘗試使用ko.toJS代替ko.toJSON,另外如果self.ACCOUNT_CODE是可觀的,你應該寫self.ACCOUNT_CODE()等(與())。