ASP.NET MVC передает сложный тип в проблему контроллера

StackOverflow https://stackoverflow.com/questions/609603

  •  03-07-2019
  •  | 
  •  

Вопрос

У меня проблема с передачей сложного типа в контроллер.

Вот как выглядит моя модель:

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

Мой метод контроллера выглядит следующим образом:

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

и я пытаюсь выполнить мой вызов ajax следующим образом:

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

Что-то идет не так, но я не уверен, что. Я получаю что-нибудь возвращенное мне в уведомлении. Есть идеи?

Я также попытался посмотреть на значение, которое передается в метод контроллера, и оно выглядит неправильно. Я теряю информацию где-то в вызове ajax.

Я также попытался создать такой объект вечеринки, но он не сработал:

var party = { "RsvpCode": 1, "Guests": [{ "Name": "test asdfasdf", "MealOption": 1, "Attending": true }, { "Name": "test asdfasdf", "MealOption": 1, "Attending": true}], "Comments": "testdsfsdf" };
Это было полезно?

Решение

Когда я создавал переменную party, ASP.NET MVC ожидал, что она будет выглядеть следующим образом:

var party = {"RsvpCode": 1, "Гости [0]. Имя": "test asdfasdf", "Гости [0]. MealOption": 1, "Гости [0]. ;: true, "Гости [1]. Имя": "проверить asdfasdf", "Гости [1] .MealOption": 1, "Гости [1]. Входящие": верно, "Комментарии": "» ; testdsfsdf & Quot; };

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top