假设我有一个 Northwind 数据库,并且使用 ADO.NET 实体数据模型,该模型是从数据库中的表自动生成的。然后我添加一个继承自 DataService 的新 WCF 数据服务。当我启动运行服务的 Web 应用程序时,我可以请求如下数据: http://machine/Northwind.svc/Orders
这将以atom/xml 格式返回订单表中的所有订单。问题是我不需要 XML。我想要 JSON。我想我在应用程序中尝试了各种设置 (web.config) 和属性,但我仍然得到 XML。无论。当我使用 fiddler 并更改请求 header 以接受 JSON 时,我只能获取 JSON。
我不喜欢内容协商的概念。我希望始终以 JSON 格式返回数据。我怎样才能实现这一目标?
请记住,我没有创建任何模型对象,它们是根据数据库表和关系自动创建的。
最佳答案
嗯 - 内容协商是随 HTTP 一起提供的。在任何情况下,您都可以拦截传入请求并添加/覆盖 Accept header 以始终指定 JSON。有一个如何支持 JSONP 的示例,它使用类似的技巧,我认为您应该能够修改它以始终返回 JSON。 http://archive.msdn.microsoft.com/DataServicesJSONP .
关于json - 如何禁用内容协商并始终从 WCF 数据服务返回 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7978409/