[C#]将 $scope.object 在 $http.get() 方法中传递到 asp.net web api

发布时间: 2017/2/24 2:47:01
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我正在做我第一次的 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
    {

    }
}

在服务器端为空,显示了用户。任何帮助吗?

更新--

public class LoginUser
{
    public String LoginName { get; set; }

    public String LoginPassword { get; set; }
}

解决方法 1:

对 WebApi 的复杂数据通常是在请求正文中发送,您必须指定信息编码到 url 中︰

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);
赞助商