[C#]将数据从 http 请求传递到 C# 控制器

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

服务

comaxApp.factory('user', function($http) {
  return {
    login: function(loginInfo) {
      $http({
        url: './data/LogIn',
        method: "POST",
        data: loginInfo,
        headers: {
          'Content-Type': 'application/json'
        }
      }).success(function(data, status, headers, config) {
        $scope.users = data.users;
      }).error(function(data, status, headers, config) {
        $scope.status = status + ' ' + headers;
      });
    }
  };
});

控制器

$scope.login = function() {
    var loginInfo = {
        "user": "admin",
        "password": "123"
    };
    loginInfo = JSON.stringify(loginInfo);
    user.login(loginInfo).then(function(users) {
        $scope.users = users.data;
    }, function(status) {});
};

MVC 控制器

public string LogIn(string loginInfo) {

  var obj = new JavaScriptSerializer();
  var result = obj.DeserializeObject(loginInfo);


  var db = new comaxDataEntities();
  var linq = db.accounts.Where(u => u.userName == loginInfo);
  var useraccount = linq.FirstOrDefault < account > ();

  var javaScriptSerializer = new JavaScriptSerializer();
  string jsonString = javaScriptSerializer.Serialize(useraccount);
  return jsonString;

}

嘿我的问题是当我 loginInfo 到 C# 控制器数据传递的同性恋是的有效载荷是好的和显示 stringify loginfo 但我的方法得不到 logInfo。请帮助我,我新 c# 部分

解决方法 1:

你们的服务应该通过 stringify 数据到服务器,当你声明参数为字符串一样行动JSON.stringify({loginInfo: loginInfo})

代码

$http({
    url: './data/LogIn',
    method: "POST",
    data: JSON.stringify({
        loginInfo: loginInfo
    }),
    headers: {
        'Content-Type': 'application/json'
    }
}).success(function(data, status, headers, config) {
    $scope.users = data.users;
}).error(function(data, status, headers, config) {
    $scope.status = status + ' ' + headers;
});

为更好地方式我更喜欢在服务器端,将直接获取映射到类,创建 loginInfo 类你不需要将它反序列化。

赞助商