将整数列表从 AJAX 调用传递给 C# 方法 returns null
Passing list of integers from AJAX call to C# method returns null
我正在尝试使用 ajax 将一个整数数组从我的客户端 javascript 传递到服务器端 C#。但是,它在代码隐藏中始终显示为 null。我似乎无法在这里找到问题。我有一个类似的 ajax 方法,但是有一个字符串数组并且它有效,但它不适用于整数?
我的ajax方法:
var theList = [1,2,3,4,5];
$.ajax({
type: 'POST',
url: 'MyPage?handler=SaveList',
dataType: 'json',
contentType:'application/json; charset=utf-8',
headers: {
RequestVerificationToken:
$('input:hidden[name="__RequestVerificationToken"]').val()
},
data: JSON.stringify({ theList: theList }),
success: function(data){
alert("Success");
}
});
我的代码隐藏:
public JsonResult OnPostSaveList([FromBody]int[] theList) //<<<Returns 'null'
{
foreach(int data in theList){
//save to datebase
}
return new JsonResult("Done");
}
这里的问题是我从代码隐藏中的 theList
得到了一个空值。
检查 JSON.stringify,它似乎正在通过 "[1,2,3,4,5]"
。不确定这里是否存在类型不匹配。
int32 的最大值为 2147483647
,而 1609430400000
超出范围,因此您收到空值。
您可以使用 long[]
代替 int[]
来接收值。
var theList = [1609430400000, 1609516800000, 1609603200000];
$.ajax({
type: 'POST',
url: 'Index?handler=SaveList',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
headers: {
RequestVerificationToken:
$('input:hidden[name="__RequestVerificationToken"]').val()
},
data: JSON.stringify(theList),
success: function (data) {
alert("Success");
}
});
处理程序:
public JsonResult OnPostSaveList([FromBody] long[] theList) //<<<Returns 'null'
{
foreach (var data in theList)
{
//save to datebase
}
return new JsonResult("Done");
}
请求负载:
结果:
我正在尝试使用 ajax 将一个整数数组从我的客户端 javascript 传递到服务器端 C#。但是,它在代码隐藏中始终显示为 null。我似乎无法在这里找到问题。我有一个类似的 ajax 方法,但是有一个字符串数组并且它有效,但它不适用于整数?
我的ajax方法:
var theList = [1,2,3,4,5];
$.ajax({
type: 'POST',
url: 'MyPage?handler=SaveList',
dataType: 'json',
contentType:'application/json; charset=utf-8',
headers: {
RequestVerificationToken:
$('input:hidden[name="__RequestVerificationToken"]').val()
},
data: JSON.stringify({ theList: theList }),
success: function(data){
alert("Success");
}
});
我的代码隐藏:
public JsonResult OnPostSaveList([FromBody]int[] theList) //<<<Returns 'null'
{
foreach(int data in theList){
//save to datebase
}
return new JsonResult("Done");
}
这里的问题是我从代码隐藏中的 theList
得到了一个空值。
检查 JSON.stringify,它似乎正在通过 "[1,2,3,4,5]"
。不确定这里是否存在类型不匹配。
int32 的最大值为 2147483647
,而 1609430400000
超出范围,因此您收到空值。
您可以使用 long[]
代替 int[]
来接收值。
var theList = [1609430400000, 1609516800000, 1609603200000];
$.ajax({
type: 'POST',
url: 'Index?handler=SaveList',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
headers: {
RequestVerificationToken:
$('input:hidden[name="__RequestVerificationToken"]').val()
},
data: JSON.stringify(theList),
success: function (data) {
alert("Success");
}
});
处理程序:
public JsonResult OnPostSaveList([FromBody] long[] theList) //<<<Returns 'null'
{
foreach (var data in theList)
{
//save to datebase
}
return new JsonResult("Done");
}
请求负载:
结果: