2013-09-25 87 views
2

我在JavaScript對象中有一個數組。我正在使用jquery ajax調用來處理對象。使用KnockoutJS,{ko.toJSON}我得到了javascript對象的json字符串。然後使用Json.parse()將字符串傳遞給調用服務堆棧服務的ajax調用。我正在使用服務堆棧來處理對象。 我在服務中沒有收到testArray 請指導我解決這個問題。代碼片斷如下如何從客戶端使用jQuery傳遞數組到服務堆棧服務

爲什麼它給測試陣列沒有

//View Model 

    vmSaveCompanySettings = function() { 
    var self = this; 
    self.ClientName = ko.observable(""); 
    self.CompanyContact = ko.observable(""); 
    self.testArray=["1","2"]; 
    }; 

//Ajax call 
function SaveCompanySettings() { 



    var jsondata = ko.toJSON(objvmSaveCompanySettings, ['ClientName', 'CompanyWebsite','testArray']) 

    $.ajax({ 
     crossDomain: true, 
     type: "GET", 

     dataType: "jsonp", 

     data: JSON.parse(jsondata), 
     processdata: true, 


     success: function (msg) { 
      if (msg.ErrorMsg == "") { 
       GetCompanySettings(); 
      } 

     }, 
     error: function (result) { 

     } 
    }); 



} 


'Service Request method in the service stack 

Public Class UpdateCompanySettingsRequest 
    Implements IReturn(Of UpdateCompanySettingsResponse) 
    Public Property ClientName As String 
    Public Property CompanyWebsite As String 

    Public Property testArray As List(Of String) 

End Class 
+0

您的虛擬機中沒有「CompanyWebsite」屬性,但其他一切似乎都在期待它。 – ebohlman

回答

3

在你的jQuery AJAX調用,數據屬性,嘗試:

data: JSON.stringify(jsondata), 

這已解決的問題了我在正常的MVC3/4站點上傳遞數組。

相關問題