可能是一個愚蠢的問題,但我試圖添加jsonp支持到我的webapi應用程序。我加入這行我webapiconfig.cs,但它的失敗,因爲2個參數預計爲jsonpmediatypeformatter構造:jsonp媒體類型格式化程序問題
public static void Register(HttpConfiguration configuration)
{
configuration.Routes.MapHttpRoute("API Default", "api/v1/{controller}/{id}",
new { id = RouteParameter.Optional });
var appXmlType = configuration.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
configuration.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);
**configuration.Formatters.Insert(0, new JsonpMediaTypeFormatter();**
}
,第一似乎是類型mediatypeformatter的,這沒有多大意義的,我。我想:
configuration.Formatters.Insert(0, new JsonpMediaTypeFormatter(new JsonMediaTypeFormatter(),"jsonp"));
其不正確地包裹在一種叫做JSONP功能的響應,同時也打破了標準的JSON響應。
任何想法?
我想既然爲的WebAPI的默認的序列是JSON.NET,該mediatypeformatter必須組合成一個單獨的子類,讓json和jsonp工作(我使用的是WebapiContrib.Formatting.Jsonp nuget包)。我在這裏找到了一個解決方案,似乎可以做到: http://www.west-wind.com/weblog/posts/2012/Apr/02/Creating-a-JSONP-Formatter-for-ASPNET-Web- API – AesopWaits