角度代码如下。请查看我是否遗漏了帖子请求中的内容 -
<script>
var app = angular.module("myApp", [])
.controller("myControllerSubmit", function ($scope, $http) {
$scope.submit = function () {
var Employee = { empID: $scope.empId, Name: $scope.empName, Gender: $scope.empGender }
$http(
{
method: 'POST',
url: 'http://localhost:58365/home/saveEmpData',
data: Employee,
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).success(function (response,status,headers,config) {
$scope.data1 = response.data;
})
}
})
</script>
在webApi中,我获得了null Employee对象
[HttpPost]
public void saveEmpData( Employee emp)
{
if (emp.Name != null)
{
var objempList = new DAL();
objempList.saveData(emp);
}
}
答案 0 :(得分:0)
只需在[FromBody]
参数之前添加emp
属性即可从已发布的请求中获取数据。
public void saveEmpData([FromBody] Employee emp)
答案 1 :(得分:0)
在将正文内容作为一个巨型字符串发送时使用内容类型x-www-form-urlencoded。阅读Matts关于它的好答案here
在您的情况下,您想要发送一个对象,然后它更适合使用内容类型json
我会更改提交如下,然后再试一次
<script>
var app = angular.module("myApp", [])
.controller("myControllerSubmit", function ($scope, $http) {
$scope.submit = function () {
var Employee = { empID: $scope.empId, Name: $scope.empName, Gender: $scope.empGender }
$http(
{
method: 'POST',
url: 'http://localhost:58365/home/saveEmpData',
data: JSON.stringify(Employee),
headers: { 'Content-Type': 'application/json' }
}).success(function (response,status,headers,config) {
$scope.data1 = response.data;
})
}
})
</script>
答案 2 :(得分:0)
ff.load
答案 3 :(得分:0)
由于您希望通过json进行模型绑定,您必须将变量更改为与Web api emp
中的名称相同的名称。
<script>
var app = angular.module("myApp", [])
.controller("myControllerSubmit", function ($scope, $http) {
$scope.submit = function () {
var Employee = { empID: $scope.empId, Name: $scope.empName, Gender: $scope.empGender }
$http(
{
method: 'POST',
url: 'http://localhost:58365/home/saveEmpData',
data: {emp: Employee},
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).success(function (response,status,headers,config) {
$scope.data1 = response.data;
})
}
})
</script>
这将有希望解决您的问题
答案 4 :(得分:0)
你在分配属性时犯了一个错误。 替换为
var Employee = { "empID": $scope.empId, "Name": $scope.empName, "Gender": $scope.empGender }