ASP.NET Web API Delete返回404

时间:2017-01-20 17:53:23

标签: c# asp.net asp.net-web-api iis-7.5 http-delete

在我的本地IIS 7.5上使用ASP.NET(4.6.1)Web Api我尝试调用删除方法:

[HttpDelete]
[Route("Values/")]
public IHttpActionResult DeleteValue(int id)
{         
    return Ok();
}

以下DELETE请求完全正常:

https://localhost/api/Values?id=22

但是,我想像这样调用DELETE请求:

https://localhost/api/Values/22

这给了我:404.0 — Not Found

我的api路由配置定义如下:

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

我的web.config看起来像:

 <system.webServer>
<handlers>
  <remove name="WebDAV" />
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  <remove name="TRACEVerbHandler" />
  <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<modules>
  <remove name="WebDAVModule" />
</modules>

我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

更新您的路线

[Route("Values/{id}")]

这样它就可以正确地将请求映射到您的方法。