我遇到了使用AngularJS找到将对象数组发送到API的正确方法的问题。
前端代码
function getPrices(articles) {
return $http.get('http://someurl/api/prices/getprices', { params: { articles: articles } }).then(function (res) {
// do something with prices
}, function (err) {
// handle error
});
}
文章属于
类型var oneArticle = {
code: 'someCode',
quantity: 1,
stockUnit: 'piece'
}
Api代码
[VersionedRoute("getprices")]
[HttpGet]
public IHttpActionResult GetPrices([FromUri]List<Article> articles) {
// do something with input
}
文章课
public class Article {
public string Code {get;set;}
public int Quantity {get;set;}
public string StockUnit {get;set;}
}
有些问题:
1)为什么我的API上没有收到任何数据。文章总是空的
2)这是正确的做法吗?
由于
编辑1: 使用post选项我在请求中收到以下数据,但我仍然不知道如何在API上处理它。
答案 0 :(得分:1)
我终于明白了。
@Tomo:感谢您的努力
<@> @Naimad:道歉,你从一开始就是对的。以下是工作解决方案:
前端:
function getPrices(articles) {
return $http.get('http://someurl/api/prices/getprices', articles).then(function (res) {
// do something with prices
}, function (err) {
// handle error
});
}
后端
[VersionedRoute("getprices")]
[HttpPost]
public IHttpActionResult GetPrices([FromBody]List<Article> articles) {
// do something with code
}
答案 1 :(得分:0)
你试过吗
return $http({
url: '/api/SomeCtrl/GetPrices',
method: 'POST',
data: JSON.stringify({ Article : articles }),
headers: { 'Content-Type': 'application/json' }
});
和
public IHttpActionResult GetPrices([FromUri]Article articles) {
或
[HttpPost]
public void GetPrices(Article articles)
而不是无效,你把任何你返回的东西 ?
答案 2 :(得分:0)
.controller('LoginController', ['$scope', '$http', function ($scope, $http) {
function getPrices(articles) {
$http.get('http://someurl/api/prices/getprices')
.success(function (data) {
articles: data
}
}
}])