Apicontroller - 如何访问Json()和Content()等方法

时间:2014-03-01 07:32:26

标签: c# asp.net-mvc asp.net-mvc-4 rest

通常当我在普通控制器中使用ASP.NET MVC时,我可以访问返回Json()Content()等方法。

这些方法对于何时返回actionresult非常有用。但是,当有一个API控制器时,这些方法似乎不存在。我猜他们住在BaseController中,普通控制器继承自?

在使用Apicontroller时,您通常如何以简单的方式返回JSON / XML /类似内容?

2 个答案:

答案 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