Angularjs $Resource $save CRUD メソッドを使用して、RESTFull .Net Web API Web サービスにデータを送信しています。
phone.$save({}, function (data) {
alert('success');
}, function (data) {
alert('failed');
});
phone は $resource オブジェクトです。この呼び出しは、電話オブジェクトを Web API に正常に渡します。
public async Task<Phone> Post([FromBody]Phone phone)
{
try
{
if (ModelState.IsValid)
{
phone.CreatedDate = DateTime.Now;
this.Uow.Phones.Add(phone);
this.Uow.Commit();
return phone;
}
}
catch (Exception ex)
{
throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError));
}
return null;
}
ただし、応答を返すと、失敗したコールバックが次のエラーでトリガーされます。
「'ObjectContent`1' タイプは、コンテンツ タイプ 'application/json; charset=utf-8' の応答本文をシリアル化できませんでした。」
$save 関数に関する Angularjs のドキュメントには、次のようなものがあります。
card.$save();
// POST: /user/123/card/456 {id:456, number:'1234', name:'J. Smith'}
// server returns: {id:456, number:'1234', name: 'J. Smith'};
つまり、応答は同じオブジェクトを返す必要がありますが、フィールドは更新されます。
Web API から有効な応答を返すにはどうすればよいですか?
ありがとう!