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

asp.net-web-api – 如何配置OData不处理Web Api中的非odata异常

发布时间:2020-12-16 09:52:46 所属栏目:asp.Net 来源:网络整理
导读:我想在Web Api中使用OData来控制Controller中的一些Action方法.发生的事情是,一旦我在Web Api中启用OData,错误消息格式就会对所有错误进行更改. 有没有办法只为特定的控制器/动作路由配置Odata. 启用OData之前的错误消息如下所示: {"Message":"User Name/Pa
我想在Web Api中使用OData来控制Controller中的一些Action方法.发生的事情是,一旦我在Web Api中启用OData,错误消息格式就会对所有错误进行更改.
有没有办法只为特定的控制器/动作路由配置Odata.

启用OData之前的错误消息如下所示:

{"Message":"User Name/Password are invalid ."}

启用OData后的错误消息如下所示:

{
  "odata.error":{
    "message":{
      "lang":"en-US","value":"User Name/Password are invalid ."
    }
  }
}

我想配置OData只处理特定的控制器,以便其余的API不会影响OData设置.非常感谢您的帮助.

解决方法

我们在RC和RTM之间做出的一个重大改变是我们已经完全删除了EnableOData扩展方法.我们意识到在全局注册OData格式化器是一个坏主意,因为它会影响控制器,无论它们是否是OData控制器.

因此,在我们针对OData的v1版本和我们当前的夜间版本中,我们添加了一个名为ODataController的新基类.如果从ODataController(或EntitySetController)派生,您将自动获得对该控制器的OData支持.它不应该像现在这样影响其他控制器.您还应该使用config.Routes.MapODataRoute而不是EnableOData.

您可以使用以下说明安装我们最新的每晚构建:

http://blogs.msdn.com/b/henrikn/archive/2012/06/01/using-nightly-asp-net-web-stack-nuget-packages-with-vs-2012-rc.aspx

此时它应该非常稳定.

(编辑:李大同)

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

    推荐文章
      热点阅读