Question

J'ai un problème pour passer un type complexe à un contrôleur.

Voici à quoi ressemble mon modèle:

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 contrôleur ressemble à ceci:

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

et j'essaie 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. On me renvoie quelque chose dans la déclaration d'alerte. Des idées?

J'ai également essayé de regarder la valeur qui est soumise dans la méthode du contrôleur et cela n'a pas l'air correct. Je perds les informations quelque part dans l'appel ajax.

J'ai aussi essayé de créer ceci comme objet de parti et cela n'a pas fonctionné:

var party = { "RsvpCode": 1, "Guests": [{ "Name": "test asdfasdf", "MealOption": 1, "Attending": true }, { "Name": "test asdfasdf", "MealOption": 1, "Attending": true}], "Comments": "testdsfsdf" };
Était-ce utile?

La solution

Lors de la construction de la variable party, ASP.NET MVC s'attend à ce qu'elle ressemble à ceci:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top