通常当我在普通控制器中使用ASP.NET MVC时,我可以访问返回Json()
或Content()
等方法。
这些方法对于何时返回actionresult非常有用。但是,当有一个API控制器时,这些方法似乎不存在。我猜他们住在BaseController中,普通控制器继承自?
在使用Apicontroller时,您通常如何以简单的方式返回JSON / XML /类似内容?
答案 0 :(得分:5)
使用web api,您不需要指定发送给客户端的表示。 Webapi支持内容协商,这意味着客户端只需发送正确的接受标头即可从服务器请求任何表示。
请参阅http://www.asp.net/web-api/overview/formats-and-model-binding/content-negotiation
答案 1 :(得分:1)
ASP.Net Web API默认返回Json / XML内容类型。
客户端可以通过在api请求中设置所需的accept-header
,即(application/xml or application/JSON
)来控制他们想要获取的内容类型。
例如,如果客户端发出这样的请求,api将以JSON格式返回响应
GET http://localhost:1234/api/products HTTP/1.1
Host: localhost.:1234
Accept: application/json
如果客户端使用这样的标头发出请求,api将以XML格式返回响应
GET http://localhost:1234/api/products HTTP/1.1
Host: localhost.:1234
Accept: application/xml