angularJSからASP.netMVCにデータを渡そうとしていますが、常に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)で、私はこれを取得しています:
"{" Name ":" FIAT 500 "、" Description ":" New 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
....
}