MVC 웹 응용 프로그램을 개발하는 데 초보자입니다. MVC에서 컨트롤러에 중첩 된 Json을 전달하려고 시도하지만 json 파일을 전달하는 데 문제가 있습니다.중첩 JSON을 MVC5의 컨트롤러에 전달하는 방법은 무엇입니까?
내 모델은 다음과 같습니다.
public class SurveyViewModels
{
public string Question { get; set; }
public bool IsMultipleChoice { get; set; }
public bool IsSelectOneMoreThan { get; set; }
public List<string> Options { get; set; }
}
public class SurveyItems
{
public string SurveyTitle { get; set; }
public List<SurveyViewModels> SurveyViewModel { get; set; }
}
내 컨트롤러는 비슷합니다.
[HttpPost]
public JsonResult PostQuestionAndOptions(SurveyItems SurveyItems)
{
}
추가 배열의 SurveyViewModels 클래스 :
var SurveyViewModels= new Array();
$("#getButtonValue").click(function() {
......
var Options = new Array();
for (i = 1 ; i < counter; i++) {
Options[i - 1] = $('#textbox' + i).val();
}
var Data= {
"Question": Question,
"IsMultipleChoice": MultipleChoice,
"IsSelectOneMoreThan": SelectOneMoreThan,
"Options": Options
};
SurveyViewModels.push(Data);
이 버튼의 기능을 게시 :
$("#publishButton").click(function() {
var Title = $('#Title').val();
var SendingData = {
"SurveyTitle": Title,
"SurveyViewModel": SurveyViewModels
};
alert(Title);
alert(SurveyViewModels);
$.ajax({
type: "POST",
url: "/Surveys/PostQuestionAndOptions",
data:SendingData,
success: function (data) {
alert();
},
dataType: "json",
traditional: true
});
});
그러나 목록 SurveyViewModel은 null입니다. SurveyViewModel 목록이 컨트롤러로 전달되지 않는 이유
아무도 도와 줄 수 있습니까?
을 도움이된다면 'contentType : 'json''이 필요하고 데이터를 문자열로 묶어야합니다. 그러나 올바르게 생성 한 경우에는 필요하지 않습니다. 필요한 것은'data : $ ('form')입니다. serialize(), ' –
contentType을 변경하고 데이터를 문자열로 변경했습니다. 그것은 올바르게 작동합니다. 고맙습니다 ! – Mesut