将http请求中的数据传递给C#控制器
pass data from http request to C# controller
我的问题是,当我将数据传递给C#控制器时,我的loginInfo为null有效负载正常,并显示字符串loginInfo,但我的方法没有得到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;
});
}
};
});
控制器
$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;
}
您的服务应该将字符串数据传递给服务器,因为您在像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类,它将直接映射到类,您不需要对其进行反序列化。
进行以下更改-
C#
创建一个新类-
public class LoginInformation
{
public string user { get; set;}
public string password { get; set; }
}
更改LogIn方法的参数以使用新的类
public string LogIn(LoginInformation loginInfo)
{
}
角度
从控制器中删除此行(因为您提到了标题:{'Content-Type':'application/json'})
loginInfo = JSON.stringify(loginInfo);
请确保URL(URL:'./data/LogIn',)是有效的。
相关文章:
- 在控制器和数据对象之间同步数据
- 使用Ajax请求rails控制器数据
- 如何将控制器数据加载到javascript数组中
- 如何在 angular js 中访问子控制器内的父控制器数据
- 按天在视图中应用控制器数据
- 跳跃运动控制器数据的清理
- AngularJS-通过服务从指令更新控制器数据(this.model语法)
- AngularJS通过服务自动更新控制器数据
- AJAX中的AngularJS控制器数据并不总是有效的
- 自定义指令控制器数据与工厂数据同步
- 来自路由提供程序的访问控制器数据
- Angularjs的服务和控制器数据不同步
- Ui-sref阻止访问控制器数据或视图
- 控制器数据没有传递给指令
- Angular ui-router多个嵌套和控制器数据
- 停止搜索解析控制器数据
- 使用AngularJS指令修改控制器数据
- 如何设置第一个控制器数据另一个控制器
- 控制器数据以角度设置另一页
- 如何在viewjavascript中访问playframework's控制器数据