下面我的JSON從後端傳遞數組數據調用的WebAPI方法(C#)
{"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"}]}
上述數據I複製到$ scope.areas生成的數據。 現在在我看來
<div ng-repeat="lang in areas.langs">
<label><input type="checkbox" ng-model="lang.selected" value="{{lang.cisAreaId}}" /> {{lang.name}}</label>
</div>
一旦用戶點擊提交,我需要捕捉選擇複選框值並將其作爲JSON數據。
$scope.languageArray = [];
angular.forEach($scope.areas.langs, function (lang) {
if (lang.selected) $scope.languageArray.push({ "cisAreaId": lang.cisAreaId });
});
var data = JSON.stringify({
languages: $scope.languageArray,
});
它是在形成像選擇兩個複選框的值
{"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方法數組值。
你在傳遞通過URL,而不是身體。此外,擺脫複雜的對象結構,並使用一個ID數組。 –
我試着只推送id,但結果是[130,140],錯誤URL是http:// localhost:53401/api/XXXXX/Step2Data130,140 404(Not Found)。我改變了後端的方法參數以及公共的HttpResponseMessage Step2Data([From Body] List languages),並且還刪除了[FomBody]。 –
user2293819