2009-03-04 2 views
1

J'ai un problème en passant un type complexe dans un contrôleur.ASP.NET MVC passant le type complexe dans le problème de contrôleur

Voici comment ressemble mon modèle comme:

public class Party 
{ 
    [XmlAttribute] 
    public int RsvpCode { get; set; } 
    public List<Guest> Guests { get; set; } 
    public string Comments { get; set; } 
} 

public class Guest 
{ 
    [XmlAttribute] 
    public string Name { get; set; } 
    [XmlAttribute] 
    public int MealOption { get; set; } 
    [XmlAttribute] 
    public bool Attending { get; set; } 
} 

Ma méthode de commande ressemble à ceci:

public JsonResult Submit(Party party) 
    { 
     return Json(party); 
    } 

et je suis en train de faire mon appel ajax comme ceci:

var party = { RsvpCode: 1, Guests: [{ Name: "test asdfasdf", MealOption: 1, Attending: true }, { Name: "test asdfasdf", MealOption: 1, Attending: true}] }; 

       $.getJSON("/Rsvp/Submit", party, function(response) { 
        alert(response); 
       }); 

Quelque chose ne va pas mais je ne sais pas quoi. Je reçois tout ce qui me revient dans la déclaration d'alerte. Des idées?

J'ai également essayé d'examiner la valeur qui est soumise dans la méthode du contrôleur et elle ne semble pas correcte. Je perds l'information quelque part dans l'appel ajax.

J'ai aussi essayé ce créer mon objet parti comme ça et ça ne fonctionne pas:

var party = { "RsvpCode": 1, "Guests": [{ "Name": "test asdfasdf", "MealOption": 1, "Attending": true }, { "Name": "test asdfasdf", "MealOption": 1, "Attending": true}], "Comments": "testdsfsdf" }; 
+0

avez-vous inspecté le retour return de votre méthode Submit dans le débogage pour voir si les données arrivent à ce point? –

+0

ouais, ça n'a pas l'air d'arriver correctement. – ajma

+0

Commencez par utiliser JsonResult Submit (objet object) afin que vous ayez une meilleure chance de récupérer la valeur avant qu'elle ne soit convertie en type Party. –

Répondre

2

Quand je construisais la variable du parti, ASP.NET MVC attend à ressembler à ceci:

var party = {"RsvpCode": 1, "Invités [0] .Name": "test asdfasdf", "Invités [0] .MealOption": 1, "Invités [0] .Attendant": true, "Invités [ 1] .Name ":" test asdfasdf "," Invités [1] .MealOption ": 1," Invités [1] .Attendant ": true," Commentaires ":" testdsfsdf "};

Questions connexes