2016-10-26 64 views
1

我正在做一個Web API調用,我得到這個錯誤:HTTPGET屬性必須爲一個方法,但不是另一個

405 Method Not Allowed
The requested resource does not support http method 'GET'.

這裏是呼叫:

var config = { 
     url: rootWebApiUrl + '/api/containerMove/allowMultipleBoxesPerMove', 
     method: 'GET' 
    }; 

    $http(config) 
     .then(function (response) { 
      // code here 
     }, function (response) { 
      // code here 
     }); 

如果我在HTTPGET屬性添加到Web API方法,它的工作原理:

[HttpGet] 
[Route("api/containerMove/allowMultipleBoxesPerMove")] 
public bool AllowMultipleBoxesPerMove() 

我不明白的是,HttpGet不是NE用於在同一個Web API控制器上進行的其他調用。這裏有一個,如果沒有HttpGet屬性適用於:

 var config = { 
      url: rootWebApiUrl + '/api/containerMove/getBatchRefreshInterval', 
      method: 'GET' 
     }; 

     $http(config) 

而且網頁API方法:

[Route("api/containerMove/getBatchRefreshInterval")] 
public int GetBatchRefreshInterval() 

那麼,爲什麼我需要HttpGet一個網頁API方法而不是其他?這些調用和API方法幾乎完全相同。

回答

5

Bob,Web API有一個約定優於配置的範例,因此,在這種情況下,名稱以Get開頭的所有操作都將被分配給HTTP Get,這就是得到 BatchRefreshInterval的原因不需要屬性[HttpGet]

相關問題