2015-11-05 58 views
0

我有幾個Odata(4.0)/休息控制器在我的項目(c#/ .net 4.62)。除1之外的所有工作都按預期工這是我每次調用它時返回406的控制器。HTTPException 406從1 REST/OData控制器但不是其他人

[RoutePrefix("api/SecurityConfig")] 
[ApiExplorerSettings(IgnoreApi = false)] 
public class SecurityConfigController : ODataController 
{ 

    [Route("GetRoleGroupWithRoles")] 
    [EnableQuery(MaxExpansionDepth = 6)] 
    [HttpGet] 
    public virtual async Task<IHttpActionResult> GetRoleGroupWithRoles([FromODataUri] Guid key) 
    { 
     return Ok("Hello World"); 
    } 
} 

我打電話使用以下標題:

接受:應用/ *(雖然我已經試過了 「*」 和 「應用/ JSON」)

內容類型:應用程序/ json

我很困惑,爲什麼這個控制器不工作,其餘人員......提前感謝關於我如何解決這個問題的任何想法。

+0

也許[此示例](http://odata.github.io/WebApi/#01-02-getting-started)可以幫助你。 –

回答

0

我想你錯過了構建OData服務的前兩個步驟。正如名稱所述,ODataController僅適用於OData路由。您需要構建一個代表您的OData服務的EDM模型,並添加一條OData路線以顯示該EDM模型。有關如何構建OData服務的詳細信息,請參閱此官方文檔和博客文章。 [源]:How can I avoid a 406 when receiving an OData.PageResult<T>?