3
我想在我的API中创建一个自定义PUT方法,按照http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api的说明操作。ASP.NET Web API自定义PUT方法不起作用(返回404)
我的API:
public class AlarmStatusController : ApiController
{
// Other methods here (removed for brevity)
[HttpPut]
public void ResetAlarmTimeout(long AlarmID)
{
// Do stuff (removed for brevity)
}
}
我的方法调用:
$.ajax({
type: "PUT",
url: "/api/AlarmStatus/ResetAlarmTimeout",
data: { AlarmID: alarmID },
success: AlarmResetSuccess,
error: AjaxError
});
在公共静态无效寄存器(HttpConfiguration配置)我的API路线:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { action = RouteParameter.Optional, id = RouteParameter.Optional }
);
AJAX调用返回404.如果我将API方法和ajax调用更改为GET,那么它可以工作,但由于我的GET方法,这不是RESTful正在修改对象。
什么是作为一个Web服务器使用IIS,IIS Express,VS开发服务器? – nemesv
这可能是因为您的服务器没有配置为正确处理PUT请求,如果您使用的是IIS,则需要说明如何配置的版本。 – joocer
我正在使用dev服务器(从Visual Studio进行调试)。 – datadamnation