Pergunta

Eu tenho um problema passando um tipo complexo em um controlador.

Aqui está como minha aparência modelo como:

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; }
}

O meu método de controlador esta aparência:

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

e eu estou tentando fazer minha chamada ajax assim:

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);
                });

Algo está acontecendo de errado, mas eu não tenho certeza do que. Eu estou recebendo nada voltou para mim na declaração de alerta. Alguma idéia?

Eu também tentei olhar para o valor que está sendo submetido para o método do controlador e ele não parece certo. Estou perdendo a algum lugar a informação na chamada ajax.

Eu também tentei isso criando objeto minha festa como esta e não funcionou:

var party = { "RsvpCode": 1, "Guests": [{ "Name": "test asdfasdf", "MealOption": 1, "Attending": true }, { "Name": "test asdfasdf", "MealOption": 1, "Attending": true}], "Comments": "testdsfsdf" };
Foi útil?

Solução

Quando eu estava construindo a variável partido, ASP.NET MVC espera que esta aparência:

var partido = { "RsvpCode": 1, "Os hóspedes [0] .Name": "asdfasdf test", "Convidados [0] .MealOption": 1, "Os hóspedes [0] .Attending": true " Os hóspedes [1] .Name ": "asdfasdf test", "Os hóspedes [1] .MealOption": 1, "Os hóspedes [1] .Attending": true, "Comentários": "testdsfsdf"};

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top