0

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 から有効な応答を返すにはどうすればよいですか?

ありがとう!

4

1 に答える 1