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

asp.net – 如何在收到OData.PageResult时避免使用406?

发布时间:2020-12-16 03:28:29 所属栏目:asp.Net 来源:网络整理
导读:我有一个返回PageResult的ODataController. Api示例: public PageResultCustomer Get(ODataQueryOptions options) {// cut some stuff out... PageResultCustomer result = new PageResultCustomer( searchResults as IEnumerableCustomer,Request.GetNextP
我有一个返回PageResult的ODataController.

Api示例:

public PageResult<Customer> Get(ODataQueryOptions options) {
// cut some stuff out...

    PageResult<Customer> result = new PageResult<Customer>(
        searchResults as IEnumerable<Customer>,Request.GetNextPageLink(),Request.GetInlineCount());
    return result;

当我调试它时,似乎很好并且正确构建了一个PageResult类来返回.在网络上..

网络示例

using (var client = new HttpClient()) {
    client.BaseAddress = new Uri(testURL);
    string searchUrl = "api/customer?$top=1&$skip=0";
    client.DefaultRequestHeaders.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/json;odata=verbose"));
    HttpResponseMessage response = client.GetAsync(searchUrl).Result;

响应是StatusCode 406,其中有一个原因短语说明内容不可接受.如果我定义一个新的MediaTypeWithQualityHeaderValue(“application / json”),它也会这样做.

我需要更改什么才能在将控制器传递给视图之前在控制器中成功使用此Api?

解决方法

我认为你错过了构建OData服务的前两个步骤.正如名称所示,ODataController仅适用于OData路由.您需要构建一个表示OData服务的EDM模型,并添加一个暴露该EDM模型的OData路由.有关如何构建OData服务的详细信息,请参阅此 official documentation和博客 post.

(编辑:李大同)

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

    推荐文章
      热点阅读