我想在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设置。感谢您的帮助。
答案 0 :(得分:3)
我们在RC和RTM之间做出的一个重大改变是我们已经完全删除了EnableOData扩展方法。我们意识到在全球注册OData格式化器是一个坏主意,因为它会影响控制器,无论它们是否都是OData控制器。
因此,在我们的OData v1版本和我们当前的夜间版本中,我们添加了一个名为ODataController的新基类。如果从ODataController(或EntitySetController)派生,您将自动获得对该控制器的OData支持。它不应该像现在这样影响其他控制器。您还应该使用config.Routes.MapODataRoute而不是EnableOData。
您可以使用以下说明安装我们最新的每晚版本:
此时应该非常稳定。