我尝试发布到api,接受使用angular的整数参数,如下所示
function getDailyErrors() {
var uri = "/api/users/error-counts/";
var inData = { numberOfDays : 5}
return $http.post(uri, inData)
.then(function (response) {
return response.data;
});
}
API
[HttpPost]
[Route("api/users/error-counts/")]
public MultiCategorySeriesDto<int> GetErrorCounts(int numberOfDays=15)
{
return _uow.Events.Errors(numberOfDays);
}
由于某些原因,API不接受我传递的参数,而是采用默认的int参数。 我可以知道错误在哪里吗?
答案 0 :(得分:1)
尝试使用视图模型:
public class MyViewModel
{
public int NumberOfDays { get; set; }
}
您的控制器操作将作为参数:
[HttpPost]
[Route("api/users/error-counts/")]
public MultiCategorySeriesDto<int> GetErrorCounts(MyViewModel model)
{
return _uow.Events.Errors(model.NumberOfDays);
}
答案 1 :(得分:0)
由于这是一个POST,请尝试使用参数上的[FromBody]
属性让模型绑定器知道在哪里查找数据
[HttpPost]
[Route("api/users/error-counts/")]
public MultiCategorySeriesDto<int> GetErrorCounts([FromBody]int numberOfDays = 15)
{
return _uow.Events.Errors(numberOfDays);
}
答案 2 :(得分:0)
以下代码适用于我,使用与您的问题中发布的相同的API代码。
global.Himanshu.ErrorServices.factory('errorcountservices', ['$q', '$http', function ($q, $http) {
return {getDailyErrors: fucntion() {
var deffered = $q.defer();
$http({
method: 'POST',
url:/api/users/error-counts/',
params: {
numberOfDays: 5
},
}).then(function (response) {
deffered.resolve(response.data);
},function (response) {
deffered.reject(response.data);
})
return deffered.promise;
}}