2009-11-19 121 views
18

我想通过使用JavaScript在asp.net MVC中传递DELETE到一个URL,但是我总是得到405 Method not allow返回。ASP.NET MVC在HTTP DELETE请求上收到405错误?

有无论如何使这项工作?

仅供参考:我已将[AcceptVerb(HttpVerb.Delete)]属性放在我的控制器上。

DELETE /post/delete/8 

这是请求

+0

u能告诉我们通过提琴手或萤火一些请求数据,这样我们就可以翻一番证实了越来越* *要求? – 2009-11-19 03:02:05

+0

我已经通过Firebug添加了请求,那是一个请求,没有数据,因为我仍在测试... – DucDigital 2009-11-19 11:04:26

回答

41

这令我很沮丧。这是因为WebDAVModule默认安装在IIS 7.5上。通过删除模块,您可以摆脱这种令人沮丧的限制。简单地说,

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules runAllManagedModulesForAllRequests="true"> 
      <remove name="WebDAVModule"/> <- add this 

http://shouldersofgiants.co.uk/Blog/post/2009/11/27/HTTP-Error-405-With-ASPNet-MVC-and-HTTP-PUT-on-IIS-75.aspx

+0

非常好,这对我也有帮助。它可能只是一个MVC.NET 3的东西,因为我不记得它发生在MVC.NET 2中。 – Dofs 2011-05-24 14:04:49

+1

适用于PUT请求!谢谢! – 2011-06-28 08:40:07

+1

真棒!!!!!为我们的PUT问题努力工作=)...很高兴你发布了这个! – afreeland 2013-04-04 19:58:03

0

你应该检查web.config(如果使用IIS7,否则IIS管理器IIS6及以下),以确保DELETE动词映射到MCV的请求处理程序。

+0

- >你的意思是? – DucDigital 2009-11-19 11:06:14