Post un Tableau d'Objets via JSON à ASP.Net MVC3

Je suis à la recherche d'une solution pour l'Affichage d'un tableau d'objets à MVC3 via JSON.

Exemple de code je suis en train de travailler hors de:
http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx

JS:

var data = { ItemList: [ {Str: 'hi', Enabled: true} ], X: 1, Y: 2 };

$.ajax({
    url: '/list/save',
    data: JSON.stringify(data),
    success: success,
    error: error,
    type: 'POST',
    contentType: 'application/json, charset=utf-8',
    dataType: 'json'
});

ListViewModel.cs:

public class ListViewModel
{
    public List<ItemViewModel> ItemList { get; set; }
    public float X { get; set; }
    public float Y { get; set; }
}

ItemViewModel.cs:

public class ItemViewModel
{
    public string Str;   //originally posted with: { get; set; }
    public bool Enabled; //originally posted with: { get; set; }
}

ListController.cs:

public ActionResult Save(ListViewModel list)
{
    //Do something
}

Le résultat de ce POST:

liste est définie, à un ListViewModel

Ses propriétés X et Y sont définis

Le sous-jacent ItemList propriété est définie

Le ItemList contient un seul élément, comme il se doit

L'élément qui ItemList est non initialisée. Str est nulle et Activé est faux.

Mettre une autre manière, c'est ce que je reçois de MVC3 de liaison de modèle:

list.X == 1
list.Y == 2
list.ItemList != null
list.ItemList.Count == 1
list.ItemList[0] != null
list.ItemList[0].Str == null

Il semblerait que le MVC3 JsonValueProvider ne fonctionne pas pour les objets complexes. Comment puis-je obtenir que cela fonctionne? Dois-je modifier l'existant MVC3 JsonValueProvider et le fixer? Si oui, comment puis-je obtenir à et de le remplacer dans un MVC3 projet?

Liées StackOverflow questions que j'ai déjà exercé en vain:

Asp.net Mvc, Ajax, Json post (Array)
Utilise MVC2 et plus en fonction du formulaire de codage - cette approche échoue avec un objet qui contient un tableau d'objets (JQuery ne parvient pas à coder correctement).

Post un tableau d'objets complexes avec JSON, JQuery ASP.NET Contrôleur MVC
Utilise un hack, je voudrais éviter où le Contrôleur reçoit plutôt une simple chaîne de caractères qu'elle a ensuite manuellement désérialise lui-même, plutôt que de profiter du cadre.

MVC3 RC2 JSON Post de Liaison ne fonctionne pas correctement
N'a pas eu son content-type set - c'est dans mon code.

Comment publier un tableau d'objets complexes avec JSON, jQuery ASP.NET MVC Contrôleur?
Ce pauvre gars a dû écrire une JsonFilter juste pour analyser un tableau. Un autre hack, je préfère éviter.

Alors, comment puis-je faire cela?

  • Mise à jour: j'ai creusé dans la JsonValueProviderFactory. Correctement consomme de la "str" de la propriété et l'ajoute à la sauvegarde du Dictionnaire en tant que Key="ItemList[0].Str", Value="salut", ce qui semble correct. ModelBinder?
  • Vous monsieur, vient de recevoir un upvote et une étoile pour votre excellente exécution d'un débordement de pile-question! 🙂
  • Même ici, c'était la on a finalement fait le travail pour moi. Merci!