gpt4 book ai didi

javascript - 将数据从 http 请求传递到 C# Controller

转载 作者:行者123 更新时间:2023-11-30 16:59:41 27 4
gpt4 key购买 nike

我的问题是,当我将数据传递给 C# Controller 时,我的 loginInfo 为 null 有效负载正常并显示 stringify loginfo,但我的方法没有获取 logInfo。

服务

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;
});
}
};
});

Controller

$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 Controller

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;

}

最佳答案

您的服务应该将 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 类,它会直接映射到类,您不需要反序列化它。

关于javascript - 将数据从 http 请求传递到 C# Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29097731/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com