从WebAPI返回PageResult而不是格式化为OData
我正在尝试将基于WebAPI的应用程序从WebAPI RC迁移到发布版本。 它接受一些查询参数,并返回ATOM格式的OData。 由于它是一个正在运行的服务,我需要保持当前的行为。
我已经更改了API方法以返回包含我的数据的PageResult
。 根据MSDN上的支持OData查询选项文章应该是我需要做的全部,但它不起作用。 我得到了结果,但它总是格式化为JSON。 我已经尝试将Accept
请求标题更改为application/atom+xml
,但它似乎没有任何区别。
我也试过在我的WebApiConfig
添加以下行没有明显的效果:
configuration.EnableQuerySupport(); configuration.Formatters.InsertRange(0, ODataMediaTypeFormatters.Create());
我尝试清除现有的格式化程序,只是为了看看会发生什么。 我刚刚收到406 Not Acceptable
错误。 所以似乎OData格式化程序可能没有报告他们可以处理请求/响应?
请浏览此博客文章,了解如何启用OData:
您缺少OData路由 – 格式化程序需要路由才能工作。