ASP.NET MVC 복잡한 유형을 컨트롤러 문제로 전달합니다
-
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" };
해결책
당사자 변수를 구성 할 때 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"};
제휴하지 않습니다 StackOverflow