Asp.net mvc 4 .NET MVC 4内容协商不起作用

Asp.net mvc 4 .NET MVC 4内容协商不起作用,asp.net-mvc-4,asp.net-web-api,content-negotiation,Asp.net Mvc 4,Asp.net Web Api,Content Negotiation,我有一个使用.NETMVC4在C#中实现的web服务,但由于某些原因,尽管我发送了一个Accept:application/json头,但它们总是以XML格式返回数据。有什么想法吗 提前谢谢 更新:控制器代码如下所示 public HttpResponseMessage GetData() { ... DashboardInformation d = new DashboardInformation() { Name = "Test",

我有一个使用.NETMVC4在C#中实现的web服务,但由于某些原因,尽管我发送了一个Accept:application/json头,但它们总是以XML格式返回数据。有什么想法吗

提前谢谢

更新:控制器代码如下所示

public HttpResponseMessage GetData()
{
     ...
     DashboardInformation d = new DashboardInformation()
     {
            Name = "Test",
            employees = employees,
            shortcuts = shortcuts,
            notes = dashboardNoteList,
            timeEntries = dashboardTimeList,
            timeTracker = timeTracker,
            timeTrackerFromDate = ToUnixTimestamp(fromDate),
            timeTrackerToDate = ToUnixTimestamp(toDate),
            timeSummary = timeSummary,
            userInfo = uInfo
     };
     return Request.CreateResponse(HttpStatusCode.OK, d);
}
更新2:原始请求和响应

请求

GET /RestService/api/Dashboard/GetData HTTP/1.1
Host: xxx
Connection: keep-alive
Cache-Control: max-age=0
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko)         Chrome/22.0.1229.94 Safari/537.4
Accept: application/json, text/javascript, */*; q=0.01
Referer: http://xxx/Firm4.0/dashboard.html
Accept-Encoding: gzip,deflate,sdch
Accept-Language: es-ES,es;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
回应

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/xml; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 06 Nov 2012 19:01:59 GMT
Content-Length: 3610
...

我需要更多信息来诊断您的问题

  • 是否以任何方式修改了默认格式化程序集?例如,在App_Start\WebApi.Config.cs中:

        config.Formatters.Clear();
        config.Formatters.Add(...);
    
  • 您试图调用的ApiController中的操作看起来如何

  • 您能否向我们提供您的原始请求和响应消息

  • 我发现了问题。有一个自定义IContentNegotiator实现,它总是返回XmlMediaTypeFormatter。谢谢大家的帮助。

    你是说你在使用WebApi吗?对不起,我是.NET新手,所以,是的。我的控制器正在扩展ApiController。你试过直接通过Fiddler调用GET吗?还是卷曲?你有同样的问题吗?您可能正在使用JQuery进行此调用?如果是的话,你也能分享呼叫代码吗?您使用的是哪个版本的WebApi?只是检查一下它不是Beta版或更早的版本…实际上,我使用的是RestClient firefox插件,尽管它也不适用于jquery。我在问题中添加了控制器和原始请求和响应数据。关于问题1,据我所知,它们没有被修改(在项目中搜索config.Formatters)。谢谢你的帮助。