[英]How to send a list of int from Javascript (Ajax) to C#?
通常我会写
$.ajax({
url: '@Url.Action("PlantHistoryContent", "PlantStatus")',
data: {id: 1},
async: false,
type: "POST"
})
当我想将整数ID传递给C#中的服务器端时:
public void PlantHistoryContent(int id)
{
///
}
如何用整数列表做同样的事情?
所以我有一个长度未知的对象列表,并希望将其作为列表传递给服务器端?
我的服务器端应该是
public void PlantHistoryContent(List<int> id)
{
///
}
如何将ajax调用数据参数写入此?
JavaScript中的列表如下所示:
var list = [ 1, 2, 3, 4 ];
要构建它,您可以执行以下操作:
var list = [];
list.push(1);
list.push(2);
list.push(3);
list.push(4);
然后,当您发送它时,您可以执行以下操作:
$.ajax({
url: '@Url.Action("PlantHistoryContent", "PlantStatus")',
data: { ids: list },
async: false,
type: "POST"
})
要么
$.ajax({
url: '@Url.Action("PlantHistoryContent", "PlantStatus")',
data: { ids: [ 1, 2, 3, 4 ] },
async: false,
type: "POST"
})
默认情况下,使用形式编码。 请求正文将如下所示:
ids[0]=1&ids[1]=2&ids[2]=2&ids[3]=3
使用形式编码时,无法知道参数的类型。 它们都是弦。
如果您使用JSON作为传输编码,则可以发送整数,因为JSON知道字符串,整数和列表等。
$.ajax({
url: '@Url.Action("PlantHistoryContent", "PlantStatus")',
data: { data: JSON.stringify({ ids: [ 1, 2, 3, 4 ] }) },
async: false,
type: "POST"
})
现在,您的请求正文如下所示:
data=%5B1%2C2%2C3%2C4%5D
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.