在创建我们新的基于MVC Web API的服务时,我们希望将重点放在XML上,并稍后添加JSON功能作为增强功能,使用完整版JSON.NET支持。为此,我们希望阻止服务接受请求或在JSON中提供响应,以避免建立任何我们期望中断的功能。在ASP.NET MVC Web API中禁用JSON支持
有没有办法在ASP.NET MVC API中禁用JSON支持?
在创建我们新的基于MVC Web API的服务时,我们希望将重点放在XML上,并稍后添加JSON功能作为增强功能,使用完整版JSON.NET支持。为此,我们希望阻止服务接受请求或在JSON中提供响应,以避免建立任何我们期望中断的功能。在ASP.NET MVC Web API中禁用JSON支持
有没有办法在ASP.NET MVC API中禁用JSON支持?
您只需删除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);
}
还有一个更短的选项,因为只能有一个Json的格式和MediaTypeFormatterCollection公开它作为一个属性。自Web API 2以来可用(也可能在v1中,不确定)。
Formatters.Remove(controllerSettings.Formatters.JsonFormatter)
这就是我期望的解决方案。看到一些关于如何做到这一点的代码会很高兴。 – 2012-04-20 16:50:00
@ProgrammingHero你去了。更新。 – Aliostad 2012-04-20 16:53:33