2012-09-11 10 views
11

ASP.NET MVC uygulamalarında Json.NET kitaplığını default serializer olarak nasıl yedekleyeceğimiz konusunda çok fazla kaynak var, ancak, benim için hayatımın nasıl ayarlanacağıyla ilgili tek bir kaynak bulamıyorum. Varsayılan deserializer. denetleyici eylemleri, diyelim gelen parametreleri deserializing zamanBir ASP.NET MVC 3 + uygulamasında Json.NET varsayılan deserializer olarak nasıl kullanılır?

       // how to use Json.NET when deserializing 
           // incoming arguments? 
            V 
public ActionResult SomeAction (Foo foo) { 

    // this piece of code has lots of resources 
    // on how to override the default Javascript serializer 
    return Json(new Bar()); 

} 

nasıl çağrı jQuery AJAX gelen Json.NET kullanmak Başvurumu söyleyeceğiz:

biraz, burada bazı şablon kodu olduğunu göstermek için mi?

$.ajax({ 
    type : 'POST', 
    data : { foo : 'bar' } 
}); 

Ben this resource from Rick Strahl ayarlayarak benim koduna MediaTypeFormatters adapte denedim ama bu da işe yaramadı. Bir WebAPI ortamında olmadığımı unutmayın, ancak normal bir Controller üzerinde çalışan bir çözümün (en düşük ayarlarla da olsa) bir ApiController içinde çalışması gerektiğini umuyorum.

+0

Bu sorunu bir şekilde düzelttiniz mi? – Jaap

+0

@Jaap Bunu daha önce bırakmak zorunda olduğumu hatırlıyorum, ancak Fatal'ın önerisini aşağıda ve büyük ölçüde çalıştı. –

cevap

2

Özel bir ValueProviderFactory uygulamanız ve standart JsonValueProviderFactory'yi kaldırmanız gerekir.

Burada örnek bir kod var: http://json.codeplex.com/discussions/347099, ancak yorumları okuyarak,% 100 sözlüklerle düzgün işleyeceğinden emin değilim.

+0

Bu makalede, JsonConverter özniteliklerini kullanarak Json dönüşümünü özelleştirmenin bir yolu yoktur. – Jaap