J'ai une vue fortement typée avec mon viewmodel qui contient un objet Person et une liste de compétences. La personne est assez simple. J'utilise des helpers Html comme ceci @Html.TextBoxFor(m => m.Person.FirstName)
. Je soumets mon formulaire et obtiens ce que je veux.Question à propos de JSON et Sérialisation
Le problème est ma liste de compétences.
Avec un appel AJAX, j'obtiens un résultat JSON qui est un tableau de compétences.
Comment dois-je envoyer la combinaison des compétences et de la personne à ma méthode HTTPPOST?
Je vois deux possibilités.
Celui que je préfère, mais ont aucune idée sur la façon de mettre en œuvre de manière correcte: se débrouillent pour obtenir ce JSON résultat dans mon viewmodel (
List<Skill> skilllist
) et utilisez le bouton standard envoyer et recevoir en ma méthode HTTPPOST comme ça. (Voir commentaires en ligne)[HttpPost] public ActionResult RegisterPersonAndSkills(PersonSkillViewModel model) { // I can acces the Person object and its properties string firstname = model.Person.FirstName; // It would be awesome if I could access the list which used to be a JSONresult string skillname = model.SkillList[0].SkillName return null; }
Essayez transformatrice, sérialisation tout ce qui est sous la forme (personne partie d'objet) en un résultat JSON, insérez le tableau de compétences résultat JSON je dans ce viewmodel sérialisés et recevoir le modèle par la façon de relier le modèle. Avec le même résultat que la méthode post ci-dessus. Encore une fois, je ne suis pas sûr de savoir comment mettre en œuvre ceci et comment gérer les problèmes de validation possibles. Il semble beaucoup de travail pour sérialiser toutes les propriétés de Person dans JSON, et ajouter l'objet Person et le tableau de compétences à un PersonSkillViewModel JSON.
Comment pourriez-vous résoudre ce problème?
Ou est-ce simplement impossible d'obtenir les deux résultats dans un paramètre?
C'était exactement ce dont j'avais besoin. Je pensais trop à JSON et à la reliure. Merci mec. – BBQ