Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用GET将Javascript数组发送到Web API方法时出现问题_C#_Angularjs_Post_Asp.net Web Api_Get - Fatal编程技术网

C# 使用GET将Javascript数组发送到Web API方法时出现问题

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

我正在使用AngularJS$http将数据发送到我的Web API服务器。如果使用GET方法,服务器上的数组将为null。 使用POST方法,一切都很好。使用GET方法发送数组的正确方法是什么

--得到--

客户端:

     $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即可