加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-web-api – Web API ODataResult始终序列化为Atom

发布时间:2020-12-16 06:47:48 所属栏目:asp.Net 来源:网络整理
导读:我将从新的 Web API OData package返回ODataResult,如下所示: public ODataResultProduct Get(ODataQueryOptions options){ var results = (options.ApplyTo(_db.Products) as IQueryableProduct); var count = results.Count; var limitedResults = result
我将从新的 Web API OData package返回ODataResult,如下所示:

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中,json被映射到一个叫做JSON light的东西(尚未实现).因此,为了获得JSON支持获取JSON,您必须更加具体,并请求自V1以来已经在OData中的更详细的JSON版本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读