WebAPI 和 ODataController 返回 406 不可接受

2024-03-24

在将 OData 添加到我的项目之前,我的路线设置如下:

       config.Routes.MapHttpRoute(
            name: "ApiById",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional },
            constraints: new { id = @"^[0-9]+$" },
            handler: sessionHandler
        );

        config.Routes.MapHttpRoute(
            name: "ApiByAction",
            routeTemplate: "api/{controller}/{action}",
            defaults: new { action = "Get" },
            constraints: null,
            handler: sessionHandler
        );

        config.Routes.MapHttpRoute(
            name: "ApiByIdAction",
            routeTemplate: "api/{controller}/{id}/{action}",
            defaults: new { id = RouteParameter.Optional },
            constraints: new { id = @"^[0-9]+$" },
            handler: sessionHandler

所有控制器都提供Get、Put(操作名称为Create)、Patch(操作名称为Update)和Delete。例如,客户端对 CustomerType 请求使用这些不同的标准 url:

string getUrl =  "api/CustomerType/{0}";
string findUrl = "api/CustomerType/Find?param={0}";
string createUrl = "api/CustomerType/Create";
string updateUrl = "api/CustomerType/Update";
string deleteUrl = "api/CustomerType/{0}/Delete";

然后,我添加了一个 OData 控制器,其操作名称与其他 Api 控制器相同。我还添加了一条新路线:

        ODataConfig odataConfig = new ODataConfig();

        config.MapODataServiceRoute(
            routeName: "ODataRoute",
            routePrefix: null,
            model: odataConfig.GetEdmModel()
        );

到目前为止,我在客户端没有进行任何更改。当我发送请求时,收到 406 不可用错误。

路线是否变得混乱?我该如何解决这个问题?


如果您使用的是 OData V4,请替换using System.Web.Http.OData;

With using Microsoft.AspNet.OData; (最新库请查看评论)

在 ODataController 对我有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WebAPI 和 ODataController 返回 406 不可接受 的相关文章

随机推荐

  • Kivy 更新动态标签文本

    我的目标是观察数字Popup 我有一个NumericProperty正在加载 然而 当回调被调用时 数字不会改变 我在回调中没有任何代码链接到 label text 类似的问题也被问过 但是 我一直无法看到它们如何应用于这个具体案例 类似案
  • 在Python中,为什么list(None)是错误而[None]不是?

    Passing None到Python的list构造函数是一个TypeError gt gt gt l list None Traceback most recent call last File
  • 将服务绑定到活动或片段?

    我正在开发一个音乐播放器应用程序 我有一个主要活动 其中有多个片段 每个片段都在设备上显示歌曲专辑 艺术家等 我有一个音乐服务来处理所有的播放和其他事情 我感到困惑的是该服务与我拥有的各种片段的绑定 现在 我正在将主要活动和每个片段分别与服
  • xcodebuild 命令无法生成 iPA

    在 xcode 9 2 中 我使用自动签名生成存档 开发人员证书和配置文件是通过 xcodebuild 命令生成的 allowProvisioningUpdates key 但是 当通过 xcodebuild 命令生成 iPA 时 该存档会
  • Dart资源包抛出Unsupported operation in Flutter

    我的 Flutter 项目使用自己开发的 Dart 包 而该包又依赖于resource https pub dev packages resource包裹 在 Flutter 项目中使用我的包会引发Unsupported operation
  • 优雅地访问networkx中的边缘属性

    确实是这样的情况 要访问 networkx 中的边缘属性 下面尴尬的第三种形式是必要的 并且更简洁的前两种形式的任何变体都行吗 import networkx as nx G nx Graph G add edge 1 2 weight 4
  • 尝试加载 --- 我的网站时,服务工作人员获取错误?

    我最近将 Cloudfront 添加到我的网络应用程序中 我正在使用 WorkBox 服务工作者并收到错误 VM7 workbox strategies prod js 1 未捕获 承诺 TypeError 无法获取 我发现从这个帖子 ht
  • 链接到外部 URL - 目前不成功

    当我尝试链接一个 ext Url 时 例如www facebook com目前它是 mysite com music www facebook com 其链接为 a href a
  • 如何在 IntelliJ 中为整个项目配置“缩短命令行”方法

    当我运行测试时 出现错误 命令行太长 如果我将运行 调试配置中的 缩短命令行 方法设置为特定方法或类的 JAR 清单 它会起作用 但如何为整个项目设置它 或者是否有 IDE 全局设置 在 idea 文件夹中 更改workspace xml
  • 安装包失败并显示: if (file.exists(dest) && file.mtime(dest) 中出现错误

    我正在尝试安装重新思考 httr set config httr config ssl verifypeer 0L with config use proxy http myco com 5555 install github rmcelr
  • JQuery Onselect?

    当我输入 DPRtelephonenumber 时 我想在 DPRcallerhometelephonenumber 中重复它 只要我打字 这个脚本就可以工作 但是 如果 提供以前使用的值的下拉列表 并且我选择它 则 不会被设置 那么 除了
  • 禁用 UITableview 触摸时显示选择时出现问题?

    我使用 IB 并取消选中 触摸时显示选择 但它仍然在选定的单元格上显示蓝色突出显示 这是苹果的错误还是我出了问题 这可能是 IB 中的一个错误 正如您在文档中看到的那样 表视图没有任何用于在触摸时显示选择的属性 它是 tableview c
  • 在 python Altair 图中的热图中添加间距

    是否可以在使用创建的热图中添加一些间距mark rect 在 Altair python 图中 图 1 中的热图将转换为图 2 中的热图 您可以假设这是来自dataframe每列对应一个变量 我故意像这样画白条以避免任何硬编码的索引解决方案
  • java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal

    我正在尝试使用页面工厂和页面对象模型运行一个Java项目 我想在Chrome IE和Firefox上运行它 但我无法在Firefox上运行它 浏览器无法打开 我得到了这个错误 java lang NoClassDefFoundError o
  • 如何减小 NTFS 中文件夹索引文件的大​​小?

    我有一个 NTFS 文件夹 其中包含数万个文件 我已删除该文件夹中的所有文件 保存 1 我运行 contig exe 对该文件夹进行碎片整理 因此现在它仅包含 1 个片段 然而 该文件夹的大小仍然是 8MB 这意味着该指数存在很大差距 这是
  • 手动创建类以映射到 XML 请求响应

    我被指派实现一个使用 XML 请求 响应的 API 接口 API 提供商不为 XML 调用提供任何 xsd 我使用 xsd exe 生成了 C 类 xml gt xsd gt cs 但是 我发现生成的类并不令人满意 因为调用包含大量列表 而
  • 栈和堆的内存分配

    这似乎是一个非常基本的问题 但它一直在我的脑海中 当我们分配一个局部变量时 它会进入堆栈 类似地 动态分配会导致变量位于堆上 现在 我的问题是 这个变量实际上位于堆栈还是堆上 还是我们只是堆栈和堆中的引用 例如 假设我声明一个变量int i
  • 如何从 hive cli 运行 hive 脚本

    我现在有 hive 脚本 custsales hql 我想从 hive cli 运行它 hive pract5 gt run user training hdfs location custsales hql 但它不执行 请指导 我知道我们
  • 何时在 AngularJS 应用程序中使用自定义指令、ui-view 和 ng-include?

    我正在构建一个大型 复杂的 AngularJS 应用程序 想想 ERP 系统 我很难决定何时适合使用ui view ng include or a custom directive templateURL 我将举几个具体的例子 给大家一些参
  • WebAPI 和 ODataController 返回 406 不可接受

    在将 OData 添加到我的项目之前 我的路线设置如下 config Routes MapHttpRoute name ApiById routeTemplate api controller id defaults new id Rout