2012-12-01 11 views
13

Json'u varsayılan olarak XML yerine ASP.NET Web API'sinden döndürmek mümkün müdür?Varsayılan olarak ASP.NET Web API'sini kullanarak json'u döndürme

+1

Bu tür web api'yi agnostik tutma düzenini bozar. Ajax isteğinizin başlığında bir 'Accept: application/json 'gönderirseniz, WebAPI Json'da yanıt verir. Ajax isteğini görebilir miyim? – gideon

+0

Teşekkürler dostum. Bütün ihtiyacım olan buydu. Web api'yi ve api url yoluna yerleştirilen bloke kullanarak çok yönlü bir video öğreticisi gördüm ve tarayıcıya json ile cevap verdi. Yani ajax talebi yoktu. Sadece website.com/api/control –

+0

oldu Accept başlığına bile gerek yok. Bir GET isteğinde Accept üstbilginiz yoksa, JSAP'yi WebAPI'den geri almalısınız. –

cevap

18

Varsayılan olarak ne yapılır. JsonMediaTypeFormatter, ilk MediaTypeFormatter olarak kaydedilir ve istemcinin belirli bir biçimde yanıt istememesi durumunda, ASP.NET Web API'sı boru hattı size application/json biçimindeki yanıtı verir.

ne istediğini sadece destek application/json ise, diğer bütün biçemleyicileri kaldırmak ve sadece JsonMediaTypeFormatter bırakın: Tuğberk çözümü gerçekten varsayılan biçimlendirici değişen hedefi gerçekleştirmek vermez

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); 
} 
+0

Bu benim için çalışıyor. teşekkürler –

8

@. Sadece JSON sadece seçeneğini yapar. JSON varsayılan yapmak ve yine de diğer türleri desteklemek istiyorsanız, aşağıdakileri yapabilirsiniz:

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); 
} 

Not: JSON Web API 2.0 olarak varsayılan biçimlendirici olduğunu.

+0

Benim için çalışır. Çok daha iyi. – Phil

İlgili konular