在URL中动态传递数组数据以调用webapi方法(C#)

在URL中动态传递数组数据以调用webapi方法(C#),c#,angularjs,arrays,json,asp.net-web-api,C#,Angularjs,Arrays,Json,Asp.net Web Api,下面是我从后端生成的json数据 {"langs":[{"cisAreaId":100,"area":"Prog","name":"C#"},{"cisAreaId":110,"area":"Prog","name":"Java"},{"cisAreaId":120,"area":"Prog","name":"MS.NET languages(VB.NET,etc)"},{"cisAreaId":130,"area":"Prog","name":"MS Visual Languages (VB,

下面是我从后端生成的json数据

{"langs":[{"cisAreaId":100,"area":"Prog","name":"C#"},{"cisAreaId":110,"area":"Prog","name":"Java"},{"cisAreaId":120,"area":"Prog","name":"MS.NET languages(VB.NET,etc)"},{"cisAreaId":130,"area":"Prog","name":"MS Visual Languages (VB, C++, etc)"},{"cisAreaId":140,"area":"Prog","name":"Python"},{"cisAreaId":150,"area":"Prog","name":"Ruby"}]}
以上数据已复制到$scope.areas。 现在在我看来

<div ng-repeat="lang in areas.langs">
        <label><input type="checkbox" ng-model="lang.selected" value="{{lang.cisAreaId}}" /> {{lang.name}}</label>
    </div>
它在选择两个复选框值后形成数组

{"languages":[{"cisAreaId":110},{"cisAreaId":120}]}
从上面的代码中,我如何在URL中传递上述动态数组以调用后端方法

Angularjs Controller Code:    
XXXService.step2Form(data).then(function (results) {
            console.log(results.data); 
        }, function (error) {
            alert(error.data.message);
        });

service code:
var _step2Form = function (data) {
       return $http.post(serviceBase + 'api/feedback/Step2Data' + data , { headers: { 'Content-Type': 'application/json' } });
        };
我已将数据动态传递到后端

public HttpResponseMessage Step2Data([FromBody] int[] languages)
但是我得到了这样的错误

http://localhost:53401/api/XXXX/Step2Data[object%20Object],[object%20Object] 404 (Not Found)

谁能告诉我如何在url中动态传递数组值以调用webapi方法

$scope.languageArray
中,只需推送id:

$scope.languageArray = [];
angular.forEach($scope.areas.langs, function (lang) {
   if (lang.selected) $scope.languageArray.push(lang.cisAreaId);
});
var data = JSON.stringify({
     languages: $scope.languageArray,
});

你是通过url传递的,不是正文。另外,摆脱复杂的对象结构,只使用一个id数组。我尝试只推id,但结果是[130140],错误URL是404(未找到)。我更改了后端以及公共HttpResponseMessage Step2Data([From Body]列表语言)中的方法参数,并删除了[FomBody]。尝试用[FromBody]列表语言替换[FromBody]int[]语言我尝试只推送id,但结果将是[130140],错误URL为404(未找到)。我更改了后端中的方法参数以及公共HttpResponseMessage Step2Data([From Body]列表语言)将[HttpPost]添加到您的操作:[HttpPost]公共HttpResponseMessage Step2Data([FromBody]int[]语言)是的,我已添加[HttpPost]公共HttpResponseMessage Step2Data([FromBody]列表语言)我想我们需要在URL部分做一些更改。是的。将+替换为:$http.post(serviceBase+'api/feedback/Step2Data,data。。。
$scope.languageArray = [];
angular.forEach($scope.areas.langs, function (lang) {
   if (lang.selected) $scope.languageArray.push(lang.cisAreaId);
});
var data = JSON.stringify({
     languages: $scope.languageArray,
});