在創建我們新的基於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