【发布时间】:2012-06-28 03:48:43
【问题描述】:
我正在尝试使用 ASP.Net Web API,按照惯例,它将控制器方法拆分为 Restful 风格的 Get()、Put、Post 和 Delete。我的问题是如何处理可能来自非 Ajax 浏览器请求的 PUT 和 DELETE 请求。
所以,假设我有 id = 123 的 foobar。正常的获取请求是
/foobars/123
要删除项目,Restful 方式是发出:
DELETE /foobars/123
但是,PUT 和 DELETE 不是浏览器标准,如果您的请求来自非 Ajax 浏览器请求,则它们没有足够的主要浏览器支持值得信赖。因此,一个普遍接受的解决方法是:
POST /foobars/123?_method=DELETE (source: Restful Web Services)
对于新的 ASP.Net Web API,是否有解决此问题的最佳实践/通用方法?我想要的是将带有_method=DELETE 的任何东西路由到控制器中的DELETE() 方法,并将_method=PUT 路由到控制器的PUT() 方法。
【问题讨论】:
标签: rest asp.net-web-api http-delete http-put