我不知道我在我的代码中做错了什么我试图向webapi控制器发送一些值加热断点调用正确的方法但总是我得到参数为null。 我试过JSONStringfy 设置标题和许多方法,但仍然都失败
以下是角度方法的一些代码片段
$http.post('/api/EmployeeData/' + p.EmpNo, JSON.stringify(p))
.success(function(data) {
Alert(ok)
}).error(function(data, status, headers, config) {
data;
});
其他方式
$http({
url: '/api/EmployeeData/' + p.EmpNo,
data: JSON.stringify(p), //or this as well p,// or {Employee: p},
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
} //or {'Content-Type': 'application/json'}
})('/api/EmployeeData/' + p.EmpNo, JSON.stringify(p)).success(function(data) {
Alert(ok)
}).error(function(data, status, headers, config) {
data;
});
API控制器的代码段
public HttpResponseMessage PostEmployee([FromBody] Employee employee) {
if (ModelState.IsValid) {
db.Employees.Add(employee);
db.SaveChanges();
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, employee);
response.Headers.Location = new Uri(Url.Link("DefaultApi", new {
id = employee.EmpNo
}));
return response;
} else {
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
}
**但我仍然将Employee视为null,即使我将参数类型更改为字符串**
HttpResponseMessage to IHttpActionResult
但仍然相同
我不知道我做了什么错,任何建议都会非常明显。
提前致谢
答案 0 :(得分:0)
不是' p'已经是json?不需要JSON.stringify:
$http.post('/api/EmployeeData/'+ p.EmpNo, p)
此外,您的PostEmployee方法缺少[HttpPost]属性。