C# 将参数从AngularJS传递到C控制器

C# 将参数从AngularJS传递到C控制器,c#,angularjs,C#,Angularjs,我已经尝试过研究这个问题,但我在任何地方都找不到任何有用的或相关的答案 对于我的角度控制器,我有: app.controller('AdminCtrl', function ($scope, $http) { $scope.data = { Name: '', Password: '' }, $scope.login = function (data) { $http({ method: 'POST', url: '/login/postl

我已经尝试过研究这个问题,但我在任何地方都找不到任何有用的或相关的答案

对于我的角度控制器,我有:

app.controller('AdminCtrl', function ($scope, $http) {
$scope.data = {
    Name: '',
    Password: ''
},
$scope.login = function (data) {
    $http({
        method: 'POST',
        url: '/login/postlogin',
        data: JSON.stringify({
            data: $scope.data
        }),
        contentType: "application/json",
        dataType: "json"
    }).success(function (data) {
        alert('success!');
    }).error(function (error) {
        alert(error.message);
    })
}
});
对于我的c控制器,我有一个非常基本的设置:

    [HttpPost]
    public string PostLogin(string data) {          
        return string.Empty;
    }

我的问题是在c控制器内部,数据总是空的。有人知道如何将名称和密码参数传递给c控制器吗?我知道我正在从我的文本框中接收它们的值。我也收到了成功消息/警告。谢谢

数据不是字符串。在c中,使用名称和密码作为属性创建一个对象,并具有以下特性:

[HttpPost]
public string PostLogin(Data data) {  
根据评论进行编辑: 是的,您需要在控制器中包含数据所在的命名空间。您可以尝试将数据对象直接放在上面

 public class Data
    {
        public string Name { get; set; }
        public string Password { get; set; }
    }

为清楚起见,数据不应字符串化,而应作为数据发送:数据不是字符串。在c中,使用名称和密码作为属性创建一个对象,并具有以下特性:

[HttpPost]
public string PostLogin(Data data) {  
根据评论进行编辑: 是的,您需要在控制器中包含数据所在的命名空间。您可以尝试将数据对象直接放在上面

 public class Data
    {
        public string Name { get; set; }
        public string Password { get; set; }
    }

为清楚起见,数据不应字符串化,而应作为数据发送:数据只需直接发送$scope.data,不要字符串化它。然后修改PostLogin方法,使其接受两个字符串,一个名为Name,一个名为Password。

只需直接发送$scope.data,不要将其字符串化。然后修改PostLogin方法,使其接受两个字符串,一个名为Name,另一个名为Password。

可能重复的。这里还有更多的答案。使用搜索功能。看起来你是在阅读jQuery ajax文档来使用$http,而不是在阅读angular文档。对于投票关闭的人来说,它太宽了,不是这样。@Nasreddine我在这里发布之前查看了该文档,但它并没有真正帮助我做什么。在查看了发布的答案和其他问题后,我离我要完成的目标越来越近了。$scope.data不是字符串。可能是的重复项。这里还有更多的答案。使用搜索功能。看起来你是在阅读jQuery ajax文档来使用$http,而不是在阅读angular文档。对于投票关闭的人来说,它太宽了,不是这样。@Nasreddine我在这里发布之前查看了该文档,但它并没有真正帮助我做什么。在查看了发布的答案和其他问题后,我离我试图完成的目标越来越近了。$scope.data不是字符串。我试图使用数据,但它一直告诉我无法找到数据。是否有我缺少的名称空间?我已经成功地将它与HaudurHaf发布的解决方案一起使用,但我希望将其作为对象传递,因为这里可能会传递几个参数。当我使用通用对象数据时,什么都不会通过。很高兴你让它工作,但是传递对象是个好主意。希望编辑能有所帮助。你不会想把它串起来的-将编辑答案,以使这一点在一点清楚。谢谢编辑!这非常有效。我感谢你的帮助!如果可以,我会给你一个+1。谢谢。我已经投票赞成你的问题;有人很卑鄙,在我之前就否决了。我正在尝试使用数据,但它一直告诉我数据找不到。是否有我缺少的名称空间?我已经成功地将它与HaudurHaf发布的解决方案一起使用,但我希望将其作为对象传递,因为这里可能会传递几个参数。当我使用通用对象数据时,什么都不会通过。很高兴你让它工作,但是传递对象是个好主意。希望编辑能有所帮助。你不会想把它串起来的-将编辑答案,以使这一点在一点清楚。谢谢编辑!这非常有效。我感谢你的帮助!如果可以,我会给你一个+1。谢谢。我已经投票赞成你的问题;有人很卑鄙,在我之前就投了反对票。