/ / Prečo nezachytávam tento JSON v mojom ovládači? - json, ajax, asp.net-mvc, pošta

Prečo nezachytávam tento JSON v mojom kontrolóri? - json, ajax, asp.net-mvc, príspevok

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);
}