如何使用jquery从客户端将数组传递给服务堆栈服务

时间:2013-09-25 13:38:38

标签: serialization knockout.js servicestack

我在javascript对象中有一个数组。我正在使用jquery ajax调用来处理对象。使用KnockoutJS,{ko.toJSON}我得到了javascript对象的json字符串。然后使用Json.parse()将字符串传递给调用服务堆栈服务的ajax调用。我正在使用服务堆栈来处理对象。 我在服务中的testArray中什么都没得到 请指导我解决这个问题。代码段如下

为什么它没有在测试数组中提供任何内容

    //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

1 个答案:

答案 0 :(得分:3)

在jQuery ajax调用中,对于data属性,请尝试:

data: JSON.stringify(jsondata),

在传递数组时,这解决了普通MVC3 / 4站点中的问题。