【问题标题】:When should I use HttpDelete or HttpPut in an asp.net mvc application什么时候应该在 asp.net mvc 应用程序中使用 HttpDelete 或 HttpPut
【发布时间】:2012-06-05 10:11:36
【问题描述】:

即使我的操作是在数据库上执行删除方法,我也总是使用 HttpGet 或 HttpPost。

然后我应该使用什么 HttpDelete/HttpPut ?

【问题讨论】:

  • 你真的可以谷歌它。回答您的问题:您始终可以使用 post 来更改数据。没有真正需要使用 Put 和 Delete。大多数应用程序不使用它们。
  • 忠告:在搜索蜘蛛可以到达的公共网络上 - 每个 Get 都会被触发,而 Post 则不会。因此,如果您可以发送 Get 请求来操作数据,请注意链接的可见性。 FWIW

标签: asp.net-mvc http-put http-delete


【解决方案1】:

Web 浏览器仅支持 GET 和 POST,因此如果您正在构建网站,则无需 PUT 或 DELETE。但是,如果您正在构建一个 RESTful api,如果您希望您的用户能够放置和/或删除内容,那么 PUT 和 DELETE 是您的选择。

编辑:似乎浏览器在其 XMLHttpRequest 的实现中确实支持 DELETE 和 PUT。因此,您可以在 ajax 请求中使用它们。但是,HTML 表单不支持它们。

【讨论】:

    【解决方案2】:

    如果您构建OData 服务。

    HTTP DELETE - 删除指定资源所代表的实体数据。请求或响应消息中不存在有效负载。

    HTTP PUT - 将请求资源中的现有实体数据替换为请求消息有效负载中提供的新数据。 (msdn)

    a presentation with Scott Hanselman 可能很有趣。 (我还没看过。)

    如果您在那里订阅,OData 上还有 a couple of lectures on pluralsight

    【讨论】:

      【解决方案3】:

      我想你已经了解了DELETE request 的使用,但PUT 有点不同。

      如果我在服务器中创建一个新资源并且可以访问它的 URI 是由我决定的,那么我会选择PUT。在大多数情况下,URI 由服务器决定,因此 POST 用于创建,PUT 通常用于更新。

      最后,就像GET 一样,DELETEPUT 都是幂等的,表示客户端连续发送请求多少次,服务器的状态应更改为与第一个请求相同。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-14
        • 2016-09-24
        • 1970-01-01
        相关资源
        最近更新 更多