0

我正在使用 Angularjs $Resource $save CRUD 方法将数据提交到 RESTFull .Net Web API webservice:

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

0

原来这是一个循环引用错误,我按照这里的说明解决了这个错误

于 2013-04-19T20:06:13.923 回答