WebApiを含むように更新しようとしているMVCプロジェクトがあります。必要なルートを取得するために、AttributeRoutingを使用しています。 [PUT]以外はすべての呼び出しが正しくルーティングされているように見えますが、405を返します。私はコントローラとアクションを単純化し、[HttpPut]も含めない限り[PUT]でエラーを受け取ります。私が何が欠けているか分からない。AttributeRouting.PUTAttributeを使用している場合は、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);
}
}
バージョンAttributeRouting.Core、AttributeRouting.Core.Http、AttributeRouting.Core.Webの3.5.6、AttributeRouting.WebApi
MVC4
WebDAVがインストールされていません。
良い答えですが、 –
@kiran私はこれをはるかに早く見つけたいと思っています。私はこれを理解しようと多くの時間を費やしました。それを確認していただきありがとうございます。 googleの場合: asp.net 405メソッドは許可されていません – dwbartz