2009-01-01 6 views
5

Est-il possible de configurer ce JSON sérialiseur est utilisé lors du retour JSON via le JsonResult dans le contrôleur:Sérialiseur de contrôle dans JsonResult aka Json fonction dans ASP.Net MVC?

public ActionResult SomeJsonFunction() 
{ 
    var x = SomeModelCode.SomeModelFunction(); 
    return Json(x); 
} 

Il ressemble à la valeur par défaut est le JavaScriptSerializer. J'aimerais pouvoir utiliser DataContractJsonSerializer, mais je ne trouve aucune documentation sur la façon de procéder.

Répondre

5

Vérifiez the source pour voir comment JsonResult est implémenté. Dérivez de ActionResult avec votre implémentation DataContractJsonSerializer. À l'heure actuelle, il ne sera pas facile d'utiliser la méthode d'assistance JSON(), mais vous pouvez créer votre propre méthode d'assistance dans un contrôleur de super-type de couche. Votre nouvelle méthode d'assistance renvoie votre nouvelle dérivation ActionResult.

+0

C'est exactement ce que j'ai fini par faire. Il instancie juste le JavascriptSerializer, et est assez trivial pour écrire un DataContractJsonResult dérivé de ActionResult. –

+0

Merci beaucoup! Cela a résolu un problème que nous avions avec des références circulaires et les autres retombées de JavaScriptSerializer. – Doug

Questions connexes