Asp.net web api 在XML和JSON之间切换ASP.NETWebAPI返回;其中';完成了吗?
我有一个项目。在我的控制器中有一个简单的“锅炉板”API方法:Asp.net web api 在XML和JSON之间切换ASP.NETWebAPI返回;其中';完成了吗?,asp.net-web-api,asp.net-web-api-routing,Asp.net Web Api,Asp.net Web Api Routing,我有一个项目。在我的控制器中有一个简单的“锅炉板”API方法: using System.Web.Http; public class DataController : ApiController { private static Random _Random = new Random(); [Route("api/getrandomdoubles/{count:int}")] [AcceptVerbs("GET", "POST")] public double
using System.Web.Http;
public class DataController : ApiController
{
private static Random _Random = new Random();
[Route("api/getrandomdoubles/{count:int}")]
[AcceptVerbs("GET", "POST")]
public double[] GetRandomDoubles(int count)
{
var doubles = new double[count];
for (var i = 0; i < count; i++)
{
doubles[i] = _Random.NextDouble();
}
return doubles;
}
}
如果我从JavaScript调用它,那么:
d3.json('api/getrandomdoubles/2', function (error, data) {
//Do stuff
});
我得到了JSON[0.6679551008473873,0.9205140638726363]
什么决定了我的控制器API方法何时返回XML,何时返回JSON?我猜它是根据HTTP动词决定的,即PUT
或GET
,但我看不出在哪里指定了它。我自己如何控制返回类型
=============编辑==========
我刚刚意识到这是特定于浏览器的。呼叫http://localhost:1165/api/GetRandomDoubles/2
在IE中返回JSON,在Chrome中调用它返回XML。在Web API中调用它
首先,管道从HttpConfiguration对象获取IContentNegotiator服务。它还从HttpConfiguration.formatters集合获取媒体格式化程序列表
接下来,管道调用icontentnegotiator.Negotiate,传入:
d3.json('api/getrandomdoubles/2', function (error, data) {
//Do stuff
});