Je suis en train de poster un objet de données JavaScript avec les éléments suivants:Modèle se lier à une liste <> lors de la publication JavaScript Data Object
$.post(frm.attr("action"), data, function(res)
{
// do some stuff
}, "json");
où 'données' prend la structure de
data
- panelId
- siteId
- ConfiguredFactsheetId // this is an array of CheckBox ids that correspond to ConfiguredFactsheets
- 123
- 234
- 345
Avec ce, les deux site & panneau sont correctement instanciées & lié avec leurs données mais l'objet List est null. Maintenant, je me rends compte que la propriété ConfiguredFactsheetId de mon objet 'data' est juste un tableau de valeurs d'id. Dois-je spécifier que chaque valeur correspond à une propriété configuredFactsheetId de mon objet ConfiguredFactsheet? Si oui, mon objet de données prendrait une forme similart à
data
- panelId
- siteId
- ConfiguredFactsheet // this is an array of CheckBox ids that correspond to ConfiguredFactsheets
- ConfiguredFactsheetId:123
- ConfiguredFactsheetId:234
- ConfiguredFactsheetId:345
mais évidemment ne fonctionnera pas parce que chaque fois que j'ajoute une nouvelle ConfiguredFactsheetId à l'objet, il vous reste plus qu'à remplacer le précédent.
Je sais que je peux le faire si je construit une chaîne de requête du formulaire
"&ConfiguredFactsheet[i].configuredFactsheetId = " + configuredFactsheetId;
mais je voudrais tout contenir en un seul objet de données
Toutes les suggestions? Ai-je besoin d'expliquer quelque chose (probablement tout!) Plus clairement?
Merci
Dave
AFAIK si vous avez un tableau nommé 'ConfiguredFactsheet', vous devriez avoir les noms des paramètres de configuredFactsheet'. S'il stocke la liste des ints, il pourrait être 'IEnumerable'. Utilisez donc 'public JsonResult Edit (IEnumerable configuredFactsheet)'. Comment panelId est-il transformé en panel? Avez-vous votre propre ModelBinder? –
LukLed