从 AngularJS 传递数据 $http.post ASP.net MVC 将变为空
本文关键字:MVC net ASP post AngularJS 数据 http | 更新日期: 2023-09-27 18:34:07
我正在尝试将数据从AngularJS传递到MVC ASP.net 并且总是为空。这是我的代码(只发布基本,按钮,控制器和c#):
.HTML:
<a class="btn btn-grey btn-lg btn-block" ng-click="AddCar()">Save</a>
控制器
$scope.AddCar = function () {
$http.post("Cars/AddCar", JSON.stringify($scope.new.JsonCar)).success(function (data) {
Alert(ok)
})
C#
public string AddCar(string JsonCar)
{
try
....
}
在JSON.stringify($scope.new.JsonCar)中,我得到了这个:
"{"名称":"菲亚特 500","描述":"新 car","MaxUserCapacity":5,"PhotoPath":"none"}"
我做错了什么?
将对象直接作为对象传递,而不是将其字符串化。 由于它现在正在传递,它是一个字符串,而不是可以正确反序列化的对象。
$http.post("Cars/AddCar", $scope.new.JsonCar).success(function (data) {
Alert(ok)
})
创建与您的有效负载匹配的 Car 对象。 序列化程序将为你处理 JSON 对象。
public Car AddCar(Car car)
{
try
....
}
我的假设是,在某些时候,无论如何您都会将字符串反序列化为对象。 这只会为您节省额外的步骤。
删除 JSON.stringify,你的对象已经是 JSON。
添加一个 [FromBody] 属性:
public string AddCar([FromBody]string JsonCar)
{
try
....
}