我正在尝试将数据从AngularJS传递到ASP.net MVC并且始终为null。 这是我的代码(仅发布基本,按钮,控制器和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“,”描述“:”新的 车 “ ”MaxUserCapacity“:5 ”PhotoPath“: ”无“}”
我做错了什么?
答案 0 :(得分:8)
将对象直接作为对象传递,而不是对其进行字符串化。当它正在传递时,它是一个字符串,而不是可以正确反序列化的对象。
$http.post("Cars/AddCar", $scope.new.JsonCar).success(function (data) {
Alert(ok)
})
创建与您的有效负载匹配的Car对象。序列化程序将为您处理JSON对象。
public Car AddCar(Car car)
{
try
....
}
我的假设是,无论如何,您将字符串反序列化为对象。这只会为您节省额外的一步。
答案 1 :(得分:4)
删除JSON.stringify,你的对象已经是JSON。
添加[FromBody]属性:
public string AddCar([FromBody]string JsonCar)
{
try
....
}