【问题标题】:Web API DELETE verbWeb API 删除动词
【发布时间】:2014-03-29 02:23:25
【问题描述】:

我试图将整个对象传递给我的 API 的删除方法,但执行永远不会到达它。

客户端(角度)

$http({
                      method: 'DELETE',
                      url: framewidth + "codebook/DeleteSection/",
                      data: $scope.codesection
                  })

服务器(Web API 2)

[HttpDelete]
    public int DeleteSection(Domain.Code.CodeSection section)
    {
     //   repo.Delete(Mapper.Map<EF.Code.CodeSection>(section));

        return (section.Id);
    }

完全相同的设置但使用 POST 适用于执行创建操作的方法。 是否也不可能通过 DELETE 动词请求传递整个对象?

谢谢!

【问题讨论】:

    标签: angularjs asp.net-web-api


    【解决方案1】:

    为什么在删除时传递整个对象?只传递身份证。 read related question

    public int DeleteSection(int id)
    {
       var c = new Domain.Code.CodeSection(){ Id = id};
       db.Entry(c).State= EntityState.Deleted;
       db.SaveChanges();
       return id;
    }
    

    ref

    【讨论】:

    • 我原来就是这样的。但是我在后端使用实体框架,所以为了删除一个实体,我首先必须有一个实体要删除。如果我只传递 id,我必须让 EF 首先运行 SELECT 才能找到要删除的实体。这似乎不是最有效的方法。
    • 哦,太好了,我会用它。这就是我最初的想法,但不确定如何在 EF 世界中完成。谢谢!
    猜你喜欢
    • 2014-06-16
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 2017-03-22
    相关资源
    最近更新 更多