ASP.NET 网页 API 删除 returns 404
ASP.NET Web API Delete returns 404
在本地 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>
我是不是漏掉了什么?
将您的路线更新为
[Route("Values/{id}")]
以便它可以将请求正确映射到您的方法。
在本地 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>
我是不是漏掉了什么?
将您的路线更新为
[Route("Values/{id}")]
以便它可以将请求正确映射到您的方法。