2012-06-04 66 views
7

即使在我的操作正在执行数据库的删除方法时,我总是使用HttpGet或HttpPost。什么时候应该在asp.net mvc应用程序中使用HttpDelete或HttpPut

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

+0

你真的可以谷歌它。回答您的问题:您始终可以使用信息更改数据。没有真正的需要使用Put和Delete。大多数应用程序不使用它们。 – gdoron

+1

建议的一句话:在搜索蜘蛛可以到达的公共网络上 - 当Post不是时,每个Get都被触发。因此,如果您可以发送Get请求来处理数据,请注意链接的可见性。 FWIW – LosManos

+0

http://prideparrot.com/blog/archive/2011/10/using_http_methods_in_rest – VJAI

回答

2

如果您构建OData服务。

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

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

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

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

14

Web浏览器只支持GET和POST,所以如果你正在建立一个网站,那么不需要PUT或DELETE。如果你正在构建一个RESTful api,但是,如果你希望你的用户能够放置和/或删除东西,那么PUT和DELETE就是要走的路。

编辑:看来浏览器确实支持DELETE和PUT实现XMLHttpRequest。因此你可以在ajax请求中使用它们。但是Html表单不支持它们。

2

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

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

最后一件事是,像GETDELETEPUT是幂等,意味着多少次的客户端发送串行服务器的状态应改为相同的要求作为第一要求。

相关问题