Abbiamo un progetto MVC che sto tentando di aggiornare per includere WebApi. Per ottenere i percorsi richiesti utilizziamo AttributeRouting. Tutte le chiamate sembrano essere indirizzate correttamente eccetto per [PUT] che restituisce un 405. Ho semplificato il controller e le azioni e continuo a ricevere l'errore con [PUT] a meno che includo anche [HttpPut]. Non sono sicuro di ciò che mi manca.405 quando si utilizza AttributeRouting.PUTAttribute a meno che includa anche 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);
}
}
versione 3.5.6 di AttributeRouting.Core, AttributeRouting.Core.Http, AttributeRouting.Core.Web, AttributeRouting.WebApi
MVC4
WebDAV non è installato.
buona risposta,.,. –
@kiran Vorrei averlo trovato molto prima, ho passato così tante ore a cercare di capirlo. Grazie per averlo confermato. Per google: asp.net 405 metodo non consentito – dwbartz