我想将多个对象和一个值从angular传递给asp .net web Api。
我的js:
var productStockArray =$scope.ProductStockArray;
var challan = 20;
$http.post(dataUrl + "StockProductApi/InsertStockdata", { params: { ProductStockArray: productStockArray, Challan: challan } })
.then(function (data) {
此处productStockArray
如下所示:callan是单值
{ProductCode: "Pr- 001", ProductName: "T-Shirt", DealerPrice: 5, profitPercentage: 5, freePc: 5}
{ProductCode: "abc6", ProductName: "Luxs", originalPc: 455, freePc: 5, profitPercentage: 5}
我的WebApi:
[HttpPost]
[Route("api/StockProductApi/InsertStockdata/")]
public HttpResponseMessage InsertStockdata(IEnumerable<StockProduct> ProductStockArray, int Challan)
{
---------
}
N.B:为简洁起见,避免使用整个代码。
如果我只在角度和webapi中传递一个参数(对象),那就没关系。但是当我想传递两个参数(对象和int)时,它在控制台中显示未找到错误。如果我传递两个参数(int和int),那好吧。 我的问题是我可以使用角度http.post方法将参数(对象和int)传递给web api吗?
我可以得到一个参数(只有对象)。但我想将2个参数(对象和int)传递给web api。 我怎么能这样做?
答案 0 :(得分:0)
$http.post(dataUrl + "StockProductApi/InsertStockdata?intValue="+x+"&object="+obj)
.then(function(response){
defer.resolve(response);
},function(error){
defer.reject(error);
});
答案 1 :(得分:0)
此格式允许您发布单个项目。您可以将对象作为项目的一部分(例如JSON)发送,然后将单个参数作为url的一部分包含在内,或者在项目本身中包含这两个参数。
$http.post(webUrl, item).then(function (response) {
resolve(response)
}, function (error) {
reject(error);
});
答案 2 :(得分:0)
继续我的评论,对于你的角度结束:
$http.post(url, angular.toJson({ ProductStockArray: productStockArray, Challan: challan }))
.then(
(response) => {
resolve(response);
},
(error) => {
reject(error);
});
关于如何解析.net服务器上发送的JSON对象,请参阅以下帖子:How to pass json POST data to Web API method as object。
注意:请务必使用angular.toJson()
,而不是JSON.stringify()
古德勒克!