gpt4 book ai didi

javascript - 如何序列化从 Controller 传入的参数?

转载 作者:行者123 更新时间:2023-12-03 06:15:36 24 4
gpt4 key购买 nike

因此,我将对象列表从 ASP.NET MVC Controller 发送回我的 ajax 成功响应:

...
success: function (data) {
var predefinedData = data.serialize();
...

当我从浏览器调试时,我看到 data 参数作为数组读取,这是可以的,但出现以下错误:

Uncaught TypeError: data.serialize is not a function

我读到我必须将“vanilla”参数转换为 jQuery,所以我执行了以下操作:

var makeJqueryArray = $.makeArray(data) //this passes ok
var predefinedData = $.param(makeJqueryArray).serialize(); //but then this reports the same error as before

经过进一步检查,我发现 $.makeArray(data) 实际上没有执行任何操作,因为它与以前完全相同,是一个包含 n 个元素的数组。

虽然 JSON.stringify(data); 可以工作,但这是不可能的,因为这给了我一个与我在这里需要的完全不同的格式。

有人有什么建议吗?

编辑1:

这是我收到的数据(从浏览器调试器 watch 中看到):

data: Array[3]
0:Object
_int:false
avg:false
max:false
min:false
sensorID:5
sum:false
val:true
__proto__: Object
1:Object
2:Object
length:3
__proto__:Array[0]

这是我想要的格式(值不匹配,因为我使用不同的示例,但你明白了):

"SensorID=1&val=false&min=false&avg=false&max=false&sum=false&_int=false&SensorID=2&val=false&min=false&avg=false&max=false&sum=false&_int=false&SensorID=3&val=false&min=false&avg=false&max=false&sum=false&_int=false&SensorID=4&val=true&val=false&min=true&min=false&avg=true&avg=false&max=true&max=false&sum=true&sum=false&_int=true&_int=false&SensorID=5&val=true&val=false&min=true&min=false&avg=true&avg=false&max=true&max=false&sum=true&sum=false&_int=true&_int=false&SensorID=6&val=false&min=false&avg=false&max=false&sum=false&_int=false&SensorID=7&val=false&min=false&avg=false&max=false&sum=false&_int=false&SensorID=9&val=false&min=false&avg=false&max=false&sum=false&_int=false"

最佳答案

如果您有一个数组,并且想要发出一个请求,其中参数是数组的键值对,则可以简单地使用 $.param(yourArray);。它将返回一个可以在您的 URL 中使用的字符串。

例如(取自 the jQuery.param page ):

var params = { width:1680, height:1050 };
var str = jQuery.param( params ); // str = "width=1680&height=1050"

这应该与您的情况相同。所以,试试这个:

var makeJqueryArray = $.makeArray(data) //this passes ok
var finalString = $.param(makeJqueryArray); // Should contain the string you want

关于javascript - 如何序列化从 Controller 传入的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39121101/

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