我在嘗試將基於WebAPI的應用程序從WebAPI RC遷移到發行版。它需要一些查詢參數,並返回ATOM格式的OData。由於它是一個正在運行的服務,我需要維護當前的行爲。從WebAPI返回PageResult未格式化爲OData
我已經改變了API方法來返回一個PageResult<T>
與我的數據。根據MSDN上的文章Supporting OData Query Options應該是我需要做的,但它不工作。我得到結果,但它總是格式化爲JSON。我嘗試將Accept
請求標題更改爲application/atom+xml
,但似乎沒有任何區別。
我也試過在我WebApiConfig
沒有明顯效果加上下面幾行:
configuration.EnableQuerySupport();
configuration.Formatters.InsertRange(0, ODataMediaTypeFormatters.Create());
我試圖清理掉現有的格式化,只是爲了看看會發生什麼。我剛回來406 Not Acceptable
錯誤。所以看起來OData格式化程序可能不報告他們可以處理請求/響應?
您是否安裝了Web API OData組件?這些都可以通過NuGet。 – DaveB 2013-03-27 19:28:30
是的,我昨天從NuGet中獲得了最新版本。 – 2013-03-27 19:34:12
您是否已將'Queryable'([Queryable(AllowedQueryOptions = AllowedQueryOptions.All)] )屬性添加到您的控制器方法並將其返回類型設置爲'IQueryable'?也許你可以發佈你的控制器和global.asax代碼。 –
DaveB
2013-03-27 19:47:02