2016-06-29 3 views
2

では見つかりません:WebAPIのHTTPDelete方法は、要求を介し見つかりましたが、私はこの方法で<code>API controller</code>を持って闊歩

[Route("campaigns")] 
    [HttpDelete] 
    public async Task<IHttpActionResult> Delete(string brandId,string campaignId) 
    { 
     try 
     { 
      var merchantId = CurrentUserInfo.GetMerchantId(); 
      await _service.DeleteAsync(merchantId, brandId, campaignId); 
      return StatusCode(HttpStatusCode.NoContent); 
     } 
     catch (Exception e) 
     { 
      Log(e); 
      return BadRequest(e.Message); 
     } 
    } 

そしてangularJSappから私は、送信要求:

$http.delete(config.resourceNames.campaign, { params: { brandId: brandId, campaignId: campaignId } }) 
      .then(function (response) { 
       return response; 
      }, function (error) { 
       return error; 
      }); 

設定ファイル:

var resourceNames = { 
    campaign: '/api/campaigns' 
}; 

ルーティングが有効です。 しかし、リクエストは常に404 NOT FOUNDを返します。

Swaggerで確認しましたが、DELETEメソッドがリストに表示されていますが、使用しようとしました。また、NOT FOUNDを返します。

なぜこのハッピングですか?

編集:

「ISS Expressは、」エラー404がありますが、私は「ローカルISS」は許されない405の方法に誤りの変更に切り替えたときに使用しますが。私はこの時代のカップルに遭遇してきた

[Route("api/campaigns")] 
+1

実際のリクエストの様子を見るには、フィドラーを使用してください。多分あなたのエラーを見つけるでしょう。 –

答えて

0

はあなたが書く必要があるかもしれませ。根本的な原因が何であるかはっきりしませんが、ルートの命名が大いに役立ったと言えるでしょう。これを試してみてください:

[Route("campaigns", Name = "delete-campaign")] 
+0

コントローラには「api」という接頭辞が付いています。 – Nerf

+0

ルーティングで何かが間違っているように見えます。これは '404 NOT FOUND'というエラーが表示されます。これは目的のアクションにヒットできないことを意味します。 'config.resourceNames.campaign'が正しいルートを反映していますか? – Tasawar

+0

いいえ、ルーティングは良好です。 Swaggerでは、メソッドが表示されます。 – Nerf

0

関連する問題