我正在做我的第一个angularsjs-asp.net web api项目。我正在尝试将一个$scope.user
对象发送到asp.net web api,如下所示 -
AngularJS控制器代码 -
$scope.user = {};
$scope.navbarCollapsed = true;
$scope.save = function () {
$http.get('/api/Login', $scope.user).
success(function (data, status, headers, config) {
$window.location.href = 'app/views/dashboard.html';
}).
error(function (data, status, headers, config) {
alert(status);
});
}
ASP.NET Web API代码:
public class LoginController : ApiController
{
public HttpResponseMessage get( LoginUser user) //user is shown null
{
}
}
用户在服务器端显示为null。有什么帮助吗?
UPDATE ----------------
public class LoginUser
{
public String LoginName { get; set; }
public String LoginPassword { get; set; }
}
答案 0 :(得分:3)
由于WebApi的复杂数据通常在请求正文中发送,因此您必须指定信息在网址中编码:
public HttpResponseMessage get([FromUri]LoginUser user)
{
}
并按如下方式发送给用户:
$http.get('/api/Login',
{
'params': $scope.user
});
但是当您发送登录信息时,我建议您切换到另一个HTTP动词,例如POST
<强>更新强>
以下是POST
动词的示例:
public HttpResponseMessage post(LoginUser user)
{
}
$http.post('/api/Login', $scope.user);