是否可以默认从ASP.NET Web API而不是XML返回json?
它是默认完成的 . JsonMediaTypeFormatter 已注册为第一个 MediaTypeFormatter ,如果客户端未以特定格式请求响应,则ASP.NET Web API管道将以 application/json 格式为您提供响应 .
JsonMediaTypeFormatter
MediaTypeFormatter
application/json
如果你想要的只是支持 application/json ,删除所有其他格式化程序,只留下 JsonMediaTypeFormatter :
public static void Configure(HttpConfiguration config) { var jqueryFormatter = config.Formatters.FirstOrDefault(x => x.GetType() == typeof(JQueryMvcFormUrlEncodedFormatter)); config.Formatters.Remove(config.Formatters.XmlFormatter); config.Formatters.Remove(config.Formatters.FormUrlEncodedFormatter); config.Formatters.Remove(jqueryFormatter); }
@tugberk 's solution doesn' t真正实现了更改默认格式化程序的目标 . 它只是使JSON成为唯一的选择 . 如果要使JSON成为默认值并仍支持所有其他类型,则可以执行以下操作:
public static void Configure(HttpConfiguration config) { // move the JSON formatter to the front of the line var jsonFormatter = config.Formatters.JsonFormatter; config.Formatters.Remove(jsonFormatter); config.Formatters.Insert(0, jsonFormatter); }
注意:JSON是Web API 2.0的默认格式化程序 .
2 回答
它是默认完成的 .
JsonMediaTypeFormatter
已注册为第一个MediaTypeFormatter
,如果客户端未以特定格式请求响应,则ASP.NET Web API管道将以application/json
格式为您提供响应 .如果你想要的只是支持
application/json
,删除所有其他格式化程序,只留下JsonMediaTypeFormatter
:@tugberk 's solution doesn' t真正实现了更改默认格式化程序的目标 . 它只是使JSON成为唯一的选择 . 如果要使JSON成为默认值并仍支持所有其他类型,则可以执行以下操作:
注意:JSON是Web API 2.0的默认格式化程序 .