【发布时间】:2017-03-02 20:52:22
【问题描述】:
我对 WebAPI/AngularJS 比较陌生,并且在使用 $http.get() 将对象从 AngularJS 控制器传递到 WebAPI 控制器时遇到问题。
AngularJS 控制器代码:
$http.get('api/Employee/GetVacancyStatus?emp='+thisData[0])
.then(function (response, success) {
if (response.data == false){
alert("cube/office occupied");
}
else // continue with employee move
{
do some stuff...
}
}, function (response, error) {
alert(response);
});
Web Api 控制器代码:
[System.Web.Http.HttpGet, System.Web.Http.ActionName("GetVacancyStatus")]
public bool GetVacancyStatus([FromUri] employee emp)
{
//return repository.GetVacStatus(moveQuery);
return false;
}
当我调试代码时,该对象似乎已填充到 AngularJS 控制器中(至少从我的 Chrome 开发人员工具来看):
另一方面,当执行到 WebAPI 控制器时,似乎对象未初始化,我无法确定我做错了什么。
我确实有一个 $http.put() 似乎正在传递这样的对象:
$http.put('api/Employee/PutEmployee', emp)
提前感谢您的帮助。
【问题讨论】:
-
不能通过 URL 传递对象。你只能传递字符串。
-
您可能应该只是传递员工的 ID。了解空置状态是否需要其他属性?此外,它们是来自客户端的值,因此无论如何您都不能相信它们是正确的。
标签: c# angularjs asp.net-web-api