【问题标题】:Passing complex JSON data jQuery to Action将复杂的 JSON 数据 jQuery 传递给 Action
【发布时间】:2010-12-01 08:13:08
【问题描述】:

我有 2 个类用于镜像来自 ajax 调用的数据。一个 (Customer) 包含一个名为 name 的属性,另一个是 Products 数组。

Public Class Customer
    Private _Name as String
    Private _Products as Product()

    Public Property Name() As String
        Get
            Return _Name 
        End Get
        Set(ByVal value As String)
            _Name = value
        End Set
    End Property

    Public Property Products() As Product()
        Get
            Return _Products
        End Get
        Set(ByVal value As Product())
            _Products= value
        End Set
    End Property

和 ajax 调用:

$.ajax({
        url: '../../Customer/SaveCustomerData',
        type: "POST",
        dataType: "json",
        data: { "Name": this.Name,
                "Products": [{ "ProductCode": "product 1", "ProductName": "product 1" },
                             { "ProductCode": "product 2", "ProductName": "product 2"}]
        },
        success: function(data) {
            alert("Customer has been saved!");
        }
    });

Customer.Name 的值被反映,但 Products 的属性仍然没有,而长度仍然为 2。

我在这里遗漏了一些非常重要的东西吗?

【问题讨论】:

    标签: asp.net json asp.net-mvc-2 jquery


    【解决方案1】:

    现在您没有传递 JSON,而是按原样传递数据,(使用 $.param() 序列化)...看起来像这样:

    Name=something&Products%5B0%5D%5BProductCode%5D=product+1&Products%5B0%5D%5BProductName%5D=product+1&Products%5B1%5D%5BProductCode%5D=product+2&Products%5B1%5D%5BProductName%5D=product+2
    

    要传递 JSON,您需要将其字符串化,如下所示:

    data: JSON.stringify({ "Name": this.Name,
            "Products": [{ "ProductCode": "product 1", "ProductName": "product 1" },
                         { "ProductCode": "product 2", "ProductName": "product 2"}]
           }),
    

    看起来像这样:

    {"Name":"something","Products":[{"ProductCode":"product 1","ProductName":"product 1"},{"ProductCode":"product 2","ProductName":"product 2"}]}
    

    现在这是你的模型可以变回一个对象的东西。对于不支持本机 JSONinclude json2.js 的旧版浏览器 (

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-29
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      • 2013-09-27
      • 2020-09-19
      • 1970-01-01
      相关资源
      最近更新 更多