Csharp/C#教程:DELETE方法.NET WebAPI不起作用分享


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

(0)
上一篇 2021年12月23日
下一篇 2021年12月23日

精彩推荐