【发布时间】:2020-06-12 16:15:53
【问题描述】:
我正在使用 asp.net core MVC 3.1.0。我从 AngularJS 调用 MVC 控制器来提交表单。但是参数对象正在将 null 传递给控制器:
AngularJS:
$scope.minfo = 0;
$scope.submit = function () {
var model = {"obj": {"Email": $scope.email,"Password": $scope.pw,"memberInformed":$scope.minfo};
return $http({
method: 'POST',
url: '/Home/Register',
data: model
});
};
控制器c#:
[AllowAnonymous]
[HttpPost]
public IActionResult Register(Register obj)
{
//...
return View();
}
更新: 布尔输入字段:
<input type="checkbox" name="minfo" ng-model="minfo" ng-true-value="1" ng-false-value="0" required />
我可以在没有memberInformed 布尔参数的情况下发送参数。否则对象为空。感谢您的回答。
【问题讨论】:
-
您使用的是哪个版本的 MVC?请尝试修改控制器动作签名以使用 [FromBody] 。 =>
public IActionResult Register([FromBody]Register obj). -
不需要对数据进行字符串化。 AngularJS 框架会自动执行此操作。
-
如果没有 stringfy,它会显示“对象对象”,但我可以看到带有 stringfy 的参数。问题是它们在控制器端为空。 @georgeawg
-
检查开发者控制台的网络选项卡以查看请求并对其进行调试。
-
使用
ng-true-value,minfo 值不会是布尔值
标签: json angularjs asp.net-mvc