문제

복잡한 유형을 컨트롤러로 전달하는 데 문제가 있습니다.

내 모델은 다음과 같습니다.

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" };
도움이 되었습니까?

해결책

당사자 변수를 구성 할 때 ASP.NET MVC는 다음과 같이 보일 것으로 예상합니다.

var party = { "rsvpcode": 1, "Guests [0] .name": "test asdfasdf", "손님 [0] .mealoption": 1, "Guests [0] .attending": true, "손님 [1 ]. 이름 : "테스트 ASDFASDF", "Guests [1] .mealoption": 1, "Guests [1] .attending": true, "댓글": "testdsfsdf"};

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top