Takže prechádzam radom objektov ako
{ QuestionId: 24,
AnswerVal: -1,
PartnerId: "e0e8035d-046a-45c5-b7e5-7986865ce37c",
VersionId: 1 }
a môj kontrolór je
[HttpPost]
public async Task<ActionResult> SubmitAnswers ( List<AnswerSubmission> A )
kde AnswerSubmission
je definovaná
public class AnswerSubmission
{
public Guid PartnerId { get; set; }
public int AnswerVal { get; set; }
public int QuestionId { get; set; }
public int VersionId { get; set; }
}
Nefunguje to, pretože od používateľa dostávam prázdnu odpoveď
$.ajax({
method: "POST",
url: "/Answers/SubmitAnswers",
dataType: "json",
data: JSON.stringify(Answers),
complete: function ( retobj ) {
console.log(retobj);
}
});
ak urobím svoj ovládač
[HttpPost]
public async Task<ActionResult> SubmitAnswers ( List<AnswerSubmission> A )
{
return Json(A);
}
ako test.
odpovede:
1 pre odpoveď č. 1{ QuestionId: 24,
AnswerVal: -1,
PartnerId: "e0e8035d-046a-45c5-b7e5-7986865ce37c",
VersionId: 1 }
Nie je "pole objektov", je to objekt.
tak navyše na contentType: "application/json; charset=utf-8"
ako komentoval @Stephen Muecke
jQuery:
$.ajax({
method: "POST",
url: "/Answers/SubmitAnswers",
dataType: "json",
//add this
contentType: "application/json; charset=utf-8",
data: JSON.stringify(Answers),
complete: function (retobj) {
console.log(retobj);
}
}).done(function (d) {
console.log(d); //probably what you"re really looking for..
});
Controller:
[HttpPost]
public ActionResult SubmitAnswers(AnswerSubmission A)//an object, not an array of objects
{
return Json(A);
}