0

在创建新的基于 MVC Web API 的服务时,我们希望从一开始就关注 XML,然后使用具有原生 JSON.NET 支持的完整版本添加 JSON 功能作为增强功能。为此,我们希望阻止服务接受请求或以 JSON 格式提供响应,以避免建立我们期望破坏的任何功能。

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

4

2 回答 2

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);
}
于 2012-04-20T16:48:18.617 回答
1

还有一个更短的选项,因为只能有一个 Json 格式化程序,并且 MediaTypeFormatterCollection 将其作为属性公开。从 Web API 2 开始可用(可能也在 v1 中,不确定)。

GlobalConfiguration.Configuration.Formatters.Remove(controllerSettings.Formatters.JsonFormatter)

于 2014-04-24T12:47:19.100 回答