2010-06-01 5 views
5

J'essaie de désérialiser un objet qui a été généré par LinqToSql. L'utilisateur est autorisé à modifier les données de l'objet dans la vue, puis il est renvoyé au contrôleur. Les données éditées sont en JSON. Comment cette action doit-elle ressembler?Désérialise des objets JSON dans le contrôleur MVC Asp.Net

Quelque chose comme ...

public ActionResult(JsonObject json) 
{ 
    MyClass c = Jsonify(json) as MyClass; 
} 

est-il une belle classe statique utile dans le cadre que je suis absent? Ou dois-je créer un DataContract?

Un grand merci

Répondre

21

System.Web.Script.Serialization.JavaScriptSerializer

public ActionResult Blah(JsonObject json) 
{ 
    JavaScriptSerializer js = new JavaScriptSerializer(); 
    var c = js.Deserialize<MyClass>(json); 
    return View(c); 
} 

EDIT: Oops ... juste remarqué que vous passez un objet au lieu de chaîne .... vous devrez utiliser System.Runtime.Serialization.Json.DataContractJsonSerializer:

DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(MyClass)); 
MyClass c = (MyClass)serializer.ReadObject(json); 
+0

bien, merci (et oui peut-être que j'étais un peu fainéant à rtfm ;-)) –

+0

Content de pouvoir aider! –

+2

+1 pour la mise à jour;) –

Questions connexes