2012-04-20 62 views
0

在创建我们新的基于MVC Web API的服务时,我们希望将重点放在XML上,并稍后添加JSON功能作为增强功能,使用完整版JSON.NET支持。为此,我们希望阻止服务接受请求或在JSON中提供响应,以避免建立任何我们期望中断的功能。在ASP.NET MVC Web API中禁用JSON支持

有没有办法在ASP.NET MVC API中禁用JSON支持?

回答

4

您只需删除JSON媒体格式化程序即可。

// Identify JSON formatters in global config. 
var jsonMediaTypeFormatters = GlobalConfiguration.Configuration.Formatters 
    .Where(x => x.SupportedMediaTypes 
    .Any(y => y.MediaType.Equals("application/json", StringComparison.InvariantCultureIgnoreCase))) 
    .ToList(); 

// Remove formatters from global config. 
foreach (var formatter in jsonMediaTypeFormatters) 
{ 
    GlobalConfiguration.Configuration.Formatters.Remove(formatter); 
} 
+0

这就是我期望的解决方案。看到一些关于如何做到这一点的代码会很高兴。 – 2012-04-20 16:50:00

+0

@ProgrammingHero你去了。更新。 – Aliostad 2012-04-20 16:53:33

1

还有一个更短的选项,因为只能有一个Json的格式和MediaTypeFormatterCollection公开它作为一个属性。自Web API 2以来可用(也可能在v1中,不确定)。

Formatters.Remove(controllerSettings.Formatters.JsonFormatter)