gpt4 book ai didi

asp.net - 将复杂的 JSON 数据 jQuery 传递给 Action

转载 作者:行者123 更新时间:2023-12-01 01:11:06 25 4
gpt4 key购买 nike

我有 2 个类,用于镜像 ajax 调用中的数据。一个(客户)包含名称属性,另一个是产品数组。

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!");
}
});

反射(reflect)了 Customer.Name 的值,但产品的属性保持不变,同时长度仍为 2。

我在这里错过了一些真正重要的东西吗?

最佳答案

现在您没有传递 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"}]}

现在这就是您的模型可以将其转回对象的东西。对于不支持 native JSON 的旧版浏览器 (< IE8),include json2.js这将模拟行为。

关于asp.net - 将复杂的 JSON 数据 jQuery 传递给 Action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4322359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com