Mamy projekt MVC, który próbuję zaktualizować, aby włączyć WebApi. Aby uzyskać wymagane trasy, korzystamy z AttributeRouting. Wszystkie wywołania wydają się poprawnie routować, z wyjątkiem [PUT], które zwraca 405. Uprościłem kontroler i akcje i nadal otrzymuję błąd z [PUT], chyba że włączam również [HttpPut]. Nie jestem pewien, czego mi brakuje.405 przy użyciu AttributeRouting.PUTAttribute, chyba że włączam również HttpPutAttribute
[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);
}
}
Wersja 3.5.6 z AttributeRouting.Core, AttributeRouting.Core.Http, AttributeRouting.Core.Web, AttributeRouting.WebApi
MVC4
WebDAV nie jest zainstalowany.
Dobra odpowiedź,.,. –
@kiran Chciałbym znaleźć to o wiele wcześniej, spędziłem tyle godzin próbując to zrozumieć. Dzięki za potwierdzenie. Dla google: Metoda ASP.net 405 jest niedozwolona – dwbartz