调用mvc的删除方法,方法上面标注的请求方式为【HttpDelete】
ajax调用,type为“delete”
于是在mvc项目的web.config修改配置如下:
<system.webServer> <validation validateIntegratedModeConfiguration="false" /> <modules runAllManagedModulesForAllRequests="true"> </modules> </system.webServer>
设置modules的属性runAllManagedModulesForAllRequests为true
本地再次调试发现好了
还有前端调用delete的方式,有人认为是:
jquery中的标准请求,只有get和post,而put和delete其实都是post请求,只是分别加了参数_method: put和method: delete,所以在jquery中ajax delete请求时就可以使用$.post(url,{_method: "delete"},function(data){...})。这个要比直接使用$.ajax({method: :delete})好的多,有两个原因,1: 部分浏览器不支持{method: :delete}和{method: :post}2: 这个ajax请求无法处理返回的数据
具体还带查证
于是信心满满将服务部署在服务器上上,然而404确实不见了,405出现了
于是看到如下的解决方案:
IIS7.5上的REST服务的Put操作发生HTTP Error 405.0 - Method Not Allowed 解决方法
WebDAV 是超文本传输协议 (HTTP) 的一组扩展,为 Internet 上计算机之间的编辑和文件管理提供了标准.利用这个协议用户可以通过Web进行远程的基本文件操作,如拷贝、移动、删除等。在IIS 7.0中,WebDAV是作为独立扩展模块,需要单独进行下载,而IIS 7.5中将集成WebDAV,然而WebDav把Put,Delete给咔嚓了。所以在IIS 7.5上部署的RESTful服务(WCF Data Service,WCF Rest Service,ASP.NET Web API,ASP.NET MVC)就悲剧了,当发送Put请求就会发生HTTP Error 405.0 – Method Not Allowed错误,解决方法也很简单,在Web.config里面加入如下设置:
<system.webServer> <modules> <remove name="WebDAVModule" /> </modules> <handlers> <remove name="WebDAV" /> </handlers> </system.webServer>
原文地址;http://www.cnblogs.com/shanyou/archive/2012/03/23/2414252.html