ASP.NET MVC passando tipo complexo no problema controlador
-
03-07-2019 - |
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" };
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"};