我们有一个 MVC 项目,我正在尝试更新以包含 WebApi。为了获得所需的路由,我们使用 AttributeRouting。除了返回 405 的 [PUT] 之外,所有呼叫似乎都正确路由。我已经简化了控制器和操作,并且仍然收到 [PUT] 的错误,除非我也包含 [HttpPut]。不知道我错过了什么。
[RoutePrefix("api/Sites")]
public class SitesController : BaseApiController
{
[POST("")]
public bool CreateSite(SiteSignupArgs args)
{
...
}
[GET("Statuses")]
public IList<SiteAuditViewModel> GetStatuses()
{
...
}
[PUT("Statuses/{siteId}")]
[HttpPut] // This is required or 405 is returned
public HttpResponseMessage UpdateStatus(string siteId, UpdateStatusArgs args)
{
...
}
[DELETE("Statuses/{siteId}")]
public HttpResponseMessage Delete(string siteId)
{
return Request.CreateResponse(HttpStatusCode.OK);
}
}
AttributeRouting.Core、AttributeRouting.Core.Http、AttributeRouting.Core.Web、AttributeRouting.WebApi 3.5.6 版
MVC4
未安装 WebDAV。