从AngularJS传递参数到c#控制器
本文关键字:控制器 参数 AngularJS | 更新日期: 2023-09-27 18:03:24
我试过研究这个问题,但我找不到任何有帮助的地方或任何相关的答案。
对于我的角控制器,我有: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#控制器内部,数据总是null。有人知道如何将名称和密码参数传递给c#控制器吗?我知道一个事实,我从我的文本框中接收它们的值。我也收到成功消息/提醒。谢谢!
数据不是字符串。在c#中创建一个以Name和Password为属性的对象,并设置如下:
[HttpPost]
public string PostLogin(Data data) {
回复评论编辑:是的,您需要在控制器中包含Data所在的名称空间。您可以尝试将Data对象直接放在上面。
public class Data
{
public string Name { get; set; }
public string Password { get; set; }
}
为了清晰起见,数据不应该被字符串化,而只是作为data: data
只需发送$scope。直接使用数据,不要将其字符串化。然后修改PostLogin方法,使其接受两个字符串,一个名为Name,一个名为Password。