JQuery ajax - 如何传递具有 null 值的数组参数

JQuery ajax - how to pass an array parameter with null value

提问人:Roman Koliada 提问时间:9/2/2021 更新时间:9/2/2021 访问量:61

问:

我需要将数组参数传递给我的 ASP.NET 后端。 它看起来像这样:

$.ajax({ url: 'test', type: 'POST', data: { test: [1, 2] }})

生成的表单数据为:。test[]=1&test[]=2

目前为止,一切都好。但是当我尝试在数组中传递一个值时,就会出现问题:null

$.ajax({ url: 'test', type: 'POST', data: { test: [1, null] }})

在这种情况下,由于某种原因,生成的表单数据如下所示:。test[]=1&test[1]=

请注意,第二段有一个数字索引。这无法在后端正确解析:带有索引的段被忽略,所以我在后端没有我的值。testnull

知道如何让它工作吗?

jquery asp.net-mvc-ajax jquery-ajax

评论

0赞 Serge 9/2/2021
尝试使用 { test: [1, 0] } 或 { test: [1, -1] } 并在 API 内部转换回
0赞 Roman Koliada 9/2/2021
@Serge 谢谢,我已经在这样做了,但这只是一个解决方法,我想以更干净的方式解决它。

答:

0赞 Roman Koliada 9/2/2021 #1

我通过使用空字符串而不是:null

$.ajax({ url: 'test', type: 'POST', data: { test: [1, ''] }})

在本例中,表单数据如下所示: 并在后端正确解析为 和 。test[]=1&test[]=1null