我正在试验 ASP.Net Web API,按照惯例,它将控制器方法拆分为 Restful 风格的 Get()、Put、Post 和 Delete。我的问题是如何处理可能来自非 Ajax 浏览器请求的 PUT 和 DELETE 请求。
所以,假设我有 id = 123 的 foobar。正常的获取请求是
/foobars/123
要删除该项目,Restful 方法是发出:
DELETE /foobars/123
但是,如果您的请求来自非 Ajax 浏览器请求PUT
,DELETE
则它们不是浏览器标准,并且没有足够的主要浏览器支持值得信任。所以一个普遍接受的解决方法是:
POST /foobars/123?_method=DELETE (source: Restful Web Services)
对于新的 ASP.Net Web API,是否有解决此问题的最佳实践/通用方法?我想要的是任何带有 a 的东西都_method=DELETE
被路由到DELETE()
控制器中的方法并被_method=PUT
路由到控制器的 PUT() 方法。