asp.net - 将对象数组从 javascript 发送到 Web 服务的最佳方法是什么?

标签 asp.net javascript jquery ajax web-services

我的 javascript 中有这两个函数“类”:

// product class
function Product() {
 this.id;
 this.qty;
 this.size;
 this.option;
}

// room class
function Room() {
 this.id;
 this.type;
 this.products = [];
}

我有我的 js 逻辑,它填充房间及其产品。

现在我想将房间数组发送到网络服务来进行一些计算并从中返回结果。

如何将此数组对象发送到服务以及服务将接收以循环和处理的数据类型是什么?

我尝试编写这样的 JavaScript 代码:

        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "_Services/MyWebService.asmx/CalculatePrices",
            data: "{'rooms':'" + roomsObjects + "'}",
            dataType: "json",
            success: function(result) {
                alert(result.d);
            }
        });

网络服务如下:

[WebMethod]
    public string CalculatePrices(object rooms)
    {
        return "blabla";
    }

但我发现 wbservice 中的房间始终 = [object Object]

最佳答案

对于这种情况,这可行:

//...
   data : '{"rooms":[' + roomsObjects.join() + ']}',
//...

上面的代码将生成一个有效的 JSON 字符串,但我建议您获取 JSON library并使用 JSON.stringify 函数:

      $.ajax({
              type: "POST",
              contentType: "application/json; charset=utf-8",
              url: "_Services/MyWebService.asmx/CalculatePrices",
              data: JSON.stringify({'rooms': roomsObjects}),
              dataType: "json",
              success: function(result) {
                 alert(result.d);
              }
      });

关于asp.net - 将对象数组从 javascript 发送到 Web 服务的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1396974/

相关文章:

javascript jquery 上传前预览图像

javascript - 基于模板的动态 div 渲染与动画

asp.net - Signalr 和 Nancyfx 集成

asp.net - 如何在asp.net 2.0中使用状态服务器进行 session

c# - 微软 Visual Studio : How to exclude certain Project Folders from publishing?

javascript - 正则表达式:方括号之间的有限符号

javascript - 在 Angular js 中添加数字

javascript - 在 javascript/Angular 中扩展对象

javascript - 如何在真实示例中使用 javascript 模块模式?

c# - 只有最后一个单元格被添加到行