MVC 컨트롤러에 모델과 문자열을 전달하는 (또는 전달하려고하는) JS가 있습니다.자바 스크립트에서 MVC3 컨트롤러로 모델 및 추가 매개 변수 게시
JS 코드는 다음과 같습니다
$.ajax({
url: self.ajaxValidationUrl,
type: "POST",
data: { model: $("form").serialize(), stepList: thisStepList },
async: false,
success: function(errors) {
console.log("Errors...");
if (errors.length > 0) {
anyServerError = true;
}
for (var i = 0; i < errors.length; i++) {
console.log(errors[i].ErrorMessage);
self.errorList += "<li>" + errors[i].ErrorMessage + "</li>";
}
}
});
컨트롤러는 다음과 같습니다
[HttpPost]
public ActionResult ValidateReport(MyTemplate model, string stepList)
{
var errors = model.Validate();
return Json(errors);
}
모델 매개 변수가 비어과에 MyTemplate 개체에 해결되지 않습니다. 게시물 매개 변수가 확인 중입니다.
피들러 또는 방화범 입력란에 게시 된 값을 게시 할 수 있습니까? MyTemplate 클래스도 게시하십시오. – Rafay
게시중인 데이터에 문제가있는 것 같습니다. '$ ("form") serialize()'는 폼을 포스트 데이터 ('foo = bar & bar = baz')로 serialize 한 다음, 객체를'data'로 전달하기 때문에 jQuery가이를 다시 직렬화합니다. 그래서'model = foo % 3Dbar % 26bar % 3Dbaz & stepList = ...'와 같은 것을 게시 할 것입니다. 서버는 어떤 형식으로 데이터를 예상합니까? 나는'serialize'를'serializeArray'로 변경하는 것이 트릭을 할 수 있다고 생각합니다. –
여기 응답의 샘플입니다 : 모델 \t ReportId = c86b8427-e249-4384 - bc47-5300b2f9e346 및 사용자 아이디 = ee733263-8fe3-41a9 - b511-7e501e0bf2df 및 회사 ID = 10c5caf6-b50f-4b31-8842-4a257dde9275 & REPORTNAME = 테스트 + 이제 & TimePeriodType = 어제 stepList \t ReportName, ReportList, ReportTypes – Matt