通常当我在普通控制器中使用 ASP.NET MVC时,我可以访问返回Json()
或Content()
等方法。
这些方法对于何时返回操作结果很有用。但是,当拥有 API 控制器时,这些方法似乎不存在。我猜他们生活在基本控制器中,普通控制器继承自?
在使用 API 控制器时,您通常如何以简单的方式返回 JSON/XML/类似内容?
使用 Web api,无需指定发送到客户端的表示形式。Webapi 支持内容协商,这意味着客户端只需发送正确的接受标头即可从服务器请求任何这些表示形式。
见 http://www.asp.net/web-api/overview/formats-and-model-binding/content-negotiation
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