我想在Web中为控制器中的一些操作方法使用OData。现在发生的情况是,一旦我在Web中启用了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设置。非常感谢您的帮助。
发布于 2013-01-29 20:08:43
我们在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
在这一点上,它应该相当稳定。
https://stackoverflow.com/questions/14578593
复制相似问题