我正在从新返回 ODataResultWeb API OData包 http://blogs.msdn.com/b/alexj/archive/2012/08/15/odata-support-in-asp-net-web-api.aspx如下:
public ODataResult<Product> Get(ODataQueryOptions options)
{
var results = (options.ApplyTo(_db.Products) as IQueryable<Product>);
var count = results.Count;
var limitedResults = results.Take(100).ToArray();
return new ODataResult<Product>(results,null,count);
}
上面的方法效果很好,但无论查询类型如何,它总是返回 Atom 响应。我如何返回 JSON?
我可以看到 Atom 是 ODataMediaTypeFormatter 集合中第一个受支持的媒体类型。我很高兴完全删除 Atom 支持,因为我不需要它。更好的是正确协商内容类型。
您是否尝试过设置接受标头,如下所示:
接受=应用程序/json;odata=详细。
那应该返回 JSON。
OData 协议已经支持 JSON 一段时间了,但在协议的 V3 中 application/json 被映射到称为 JSON light 的东西(尚未实现)。因此,在支持 JSON light 来获取 JSON 之前,您必须更具体一点,并请求自 V1 以来 OData 中已包含的更详细的 JSON 版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)