2012-04-20 29 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)