C# 使用GET将Javascript数组发送到Web API方法时出现问题
我正在使用AngularJS$http将数据发送到我的Web API服务器。如果使用GET方法,服务器上的数组将为null。 使用POST方法,一切都很好。使用GET方法发送数组的正确方法是什么 --得到-- 客户端:C# 使用GET将Javascript数组发送到Web API方法时出现问题,c#,angularjs,post,asp.net-web-api,get,C#,Angularjs,Post,Asp.net Web Api,Get,我正在使用AngularJS$http将数据发送到我的Web API服务器。如果使用GET方法,服务器上的数组将为null。 使用POST方法,一切都很好。使用GET方法发送数组的正确方法是什么 --得到-- 客户端: $http({ method: 'GET', url: '/api/Status', headers: { 'Authorization': $localStorage.accesstoken }, data: s
$http({
method: 'GET',
url: '/api/Status',
headers: { 'Authorization': $localStorage.accesstoken },
data: statusID
})
$http({
method: 'POST',
url: '/api/Status',
headers: { 'Authorization': $localStorage.accesstoken },
data: statusID
})
服务器端:
[HttpGet]
public async Task<List<StatusForUpdate>> GetStatus([FromUri] List<int> StatusID)
{ ... }
[HttpPost]
public async Task<List<StatusForUpdate>> GetStatus(List<int> StatusID)
{ ... }
服务器端:
[HttpGet]
public async Task<List<StatusForUpdate>> GetStatus([FromUri] List<int> StatusID)
{ ... }
[HttpPost]
public async Task<List<StatusForUpdate>> GetStatus(List<int> StatusID)
{ ... }
首先,使用GET使用数据是不正确的,请使用参数
不幸的是,使用此代码:
var statusID = [1, 2];
$http({
method: 'GET',
url: '/api/Status',
headers: { 'Authorization': $localStorage.accesstoken },
params: statusID
})
Angular将发送如下url:
但该格式与web api默认预期格式不匹配,即:
请尝试以下方法:
var statusID = [1, 2];
$http({
method: 'GET',
url: '/api/Status',
headers: { 'Authorization': $localStorage.accesstoken },
params: {StatusID:statusID}
})
请记住将angular更新为版本>=1.2.0,对于版本1.0.x,url如下所示:
如果您使用的是旧的angular版本,并且您还不愿意升级,那么只需手工创建url以发送到web api即可