在我的本地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>
我错过了什么吗?
答案 0 :(得分:2)
更新您的路线
[Route("Values/{id}")]
这样它就可以正确地将请求映射到您的方法。