[英]AngularJS $http.post() sends null to ASP.NET web API controller method
[英]$http post passing value as null to Asp.Net Web API
我有一个发布方法的ASP.Net Web API。 我从angular js调用post方法。 它没有将数据传递给API POST方法,我的requestData对象的所有属性均为null。 我不确定这是怎么回事。 谁能帮我。
API代码
public void Post(RequestData data)
{
.....
}
public class RequestData
{
PropertyDetail propertyDetails;
ICollection<Model1> model1s;
ICollection<Model2> model2s;
ICollection<Model3> model3;
ICollection<Model4> model4;
}
客户代码
var requesData = new RequestData();
requesData.model0= $scope.model0;
requesData.model1s= $scope.models;
requesData.model2s= $scope.model2s;
requesData.model3s= $scope.model3s;
requesData.model4s= $scope.model4s;
$http({
method: 'POST',
url: window.apiUrl,
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
data: requesData,
}).then(function (res) {
console.log('succes !', res.data);
window.alert("Successfully created");
}).catch(function (err) {
debugger;
console.log('error...', err);
});
您的服务器端可能无法正确映射参数。 发布某些参数时,数据类型匹配很重要。 您可以这样更改客户代码:
...
contentType: "application/json; charset=utf-8",
data: JSON.stringify(requestData),
dataType:'json',
...
按照@ Jaky71的说明进行操作之后,您可以通过调用带有null或您需要模仿的东西的伪方法来了解.net如何期望这些对象。
.net有严格的解析器
您可以使用angular.toJson:
$http({
method: 'POST',
url: window.apiUrl,
headers: { 'Content-Type': 'application/json' },
data: angular.toJson(requesData),
}).then(function (res) {
console.log('succes !', res.data);
window.alert("Successfully created");
}).catch(function (err) {
debugger;
console.log('error...', err);
});
还要确保您的属性匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.