我什么时候应该在asp.net mvc应用程序中使用HttpDelete或HttpPut

时间:2012-06-04 20:49:19

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

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

我应该使用什么HttpDelete / HttpPut?

3 个答案:

答案 0 :(得分:16)

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

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

答案 1 :(得分:2)

如果您构建OData服务。

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

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

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

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

答案 2 :(得分:2)

我猜您已了解DELETE请求的使用,但PUT有点不同。

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

最后一点是,GET DELETEPUT都是幂等的,意味着客户端连续发送请求的次数应该将服务器的状态更改为与第一个请求。