我正在通过ajax调用发送一个数组,如下所示:
$.ajax({
url: `${rootUrl}api/groups/EditMemberGroups?groupIds=${userGroupIds}`,
type: "POST",
cache: false,
dataType: "json",
processData: false,
contentType: false
});
Controller看起来像这样:
[HttpPost]
public void EditMemberGroups(IEnumerable<int> groupIds)
{
GroupMemberService.EditMemberGroups(groupIds);
}
问题是当它到达这个api调用时groupIds
为空。调用如下所示:http://localhost/api/groups/EditMemberGroups?groupIds=1,2,3
任何见解都将不胜感激,谢谢!
答案 0 :(得分:1)
您需要一个包含列表的类:
public class ListOfGroupIds
{
public IEnumerable<int> GroupIds { get; set; }
}
将您的终点更改为:
public void EditMemberGroups([FromBody] ListOfGroupIds anyNameHere)
将数据作为JSON对象发送:
data: { 'GroupIds': groupIds }
答案 1 :(得分:0)
您必须在代码中更改两件事。首先,您必须添加[FromQuery]
属性以指定此值来自查询而不是帖子正文。
public void EditMemberGroups([FromQuery]IEnumerable<int> groupIds)
第二个变化是API调用本身。您必须发送如下数据:
http://localhost/api/groups/EditMemberGroups?groupIds=1&groupIds=2&groupIds=3