DELETE方法.NET WebAPI不起作用
我已经看过很多关于这个的post,但我的新WebAPI的DELETE方法根本不起作用,并返回404,使用Windows 7 32位,IIS 7.5。
我试过了
所有都没有用,所有返回404.如果我将DELETE类型更改为GET,那么服务完全运行GET命令。
有没有任何其他想法的人? 这让我疯狂。
编辑:
我正在调用DELETE方法(mediator是jQuery调用的包装器):
mediator.publish("AjaxCall", { url: "/api/files/" + $(a.currentTarget).data("fileid"), type: "DELETE", } });
和WebAPI:
// DELETE api//5 // [HttpDelete] - Tried this too public void Delete(int fileId) { Files.DeleteFile(fileId); }
和相关的web.config:
解决方案是在正确的applicationHost.config文件中添加PUT和DELETE谓词。
对于IIS:
转到lcation:C: Windows System32 inetsrv config并将applicationHost.config文件编辑为:
对于IIS EXPRESS转到:%userprofile% documents iisexpress config 并在applicationHost.config文件中执行相同操作。
你在“默认网站”下托管? 如果是,则尝试在不同的端口上单独托管。
我有与PUT和DELETE相同的问题,并且解决方法是成功的。
如果您正在使用属性路由, 请使用DELETE和PUT方法更新AcceptVerbs ,如下所示:
[Route("{fileId:int}")] [AcceptVerbs("DELETE")] public void Delete(int fileId) { Files.DeleteFile(fileId); }
另外,如果您将fileId作为参数名称编写,那么不要忘记将webAPI路由配置更新为api / files / {fileId}
并且还为GET和PUT使用AcceptVerbs属性,因为这三个具有相同的URL结构来调用它们的方法。 还使用RoutePrefix更新Controller,如下所示:
上述就是C#学习教程:DELETE方法.NET WebAPI不起作用分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
[RoutePrefix("api/files")] public class FileController : ApiController { }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/989117.html