2012-08-16 3 views

Répondre

3

Cela a déjà été géré pour vous par le framework.

Alors vous définissez les modèles:

public class MyViewModel 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public Complex Complex { get; set; } 
    public IEnumerable<Foo> Foos { get; set; } 
} 

public class Complex 
{ 
    public int Id { get; set; } 
} 

public class Foo 
{ 
    public string Bar { get; set; } 
} 

alors une action de contrôleur prenant ce modèle:

[HttpPost] 
public ActionResult SomeAction(MyViewModel model) 
{ 
    ... 
} 

et enfin vous martelez cette action de contrôleur avec une demande JSON correspondant à la structure de votre modèle de vue:

$.ajax({ 
    url: '@Url.Action("SomeAction")', 
    type: 'POST', 
    contentType: 'application/json', 
    data: JSON.stringify({ 
     id: 1, 
     name: 'john smith of course, why asking?', 
     complex: { 
      id: 3 
     }, 
     foos: [ 
      { bar: 'the bar' }, 
      { bar: 'the baz' }, 
     ] 
    }), 
    success: function(result) { 
     alert('hooray'); 
    } 
}); 
+0

Nous avons décidé de faire le webservice SOAP. Pas besoin de JSON. – MB34

0

http://james.newtonking.com/projects/json-net.aspx

Je voudrais ajouter plus, mais l'exemple de code est également sur cette page.

+0

Je ne veux pas convertir mon modèle en JSON, je veux convertir JSON à mon modèle. Je ne vois pas ce paquet faire cela. – MB34

+0

Vous pouvez DEserialize le JSON, puis mapper les données à votre modèle – darethas

+0

Pourquoi feriez-vous tout cela lorsque le cadre gère déjà cela pour vous? –