XMLの代わりにASP.NETWebAPIからデフォルトでjsonを返すことは可能ですか?
10557 次
2 に答える
18
これはデフォルトで行われることです。JsonMediaTypeFormatter
は最初MediaTypeFormatter
に登録され、クライアントが特定の形式で応答を要求しない場合、ASP.NETWebAPIパイプラインは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);
}
于 2012-12-01T18:08:18.803 に答える
8
@tugberkのソリューションは、デフォルトのフォーマッターを変更するという目標を実際には達成していません。それは単に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は、WebAPI2.0以降のデフォルトのフォーマッターです。
于 2014-05-15T19:27:00.540 に答える