Ich versuche, ein JSON-Array und einen Wert mit HTTP-Post übergeben. Der Wert wurde übergeben, aber das Array nicht. Der Wert von responseList im Javascript-Controller lautet: "[{" correct ":" false "," answer ":" a1 "}, {" korrekt ": true," answer ":" a2 "}]"Angular - Pass-Array mit HTTP-Post
javascript-Controller
function setMultiQuestion(question, responses)
{
var jsonData = angular.toJson(responses);
var responsesList = {'object':jsonData};;
$http.post(baseUrl + "Admin/insertMultiAnswers", { question: question, responsesList: responsesList })
.success(function (data, status, headers, config) {
})
.error(function (data, status, header, config) {
});
}
MVC-Controller
[HttpPost]
public ActionResult insertMultiAnswers(MultiChoiceQuestionModel model)
{
try
{
model.setMultiAnswer();
Response.StatusCode = 200;
return Content("Sucess");
}
catch (Exception ex)
{
Response.StatusCode = 500;
return Content("Fail");
}
}
MODEL
public class answerObj
{
public bool correct { get; set; }
public string answer { get; set; }
}
public class MultiChoiceQuestionModel
{
public string question { get; set; }
public List<answerObj> responsesList = new List<answerObj>();
public void setMultiAnswer()
{
using (ATLASEntities atlasEntity = new ATLASEntities())
{
Console.Write(responsesList.Count);
}
}
Warum machst du das? 'var AntwortenListe = {'Objekt': jsonData} ;;'? –
Wo ist die Methode 'insertMultiAnswers', auf die Sie in js verweisen? –
Sie können eines von zwei Dingen tun ... halten Sie es als ein JSON-Objekt und fügen Sie das FromBody-Attribut zu Ihrem Endpunkt hinzu oder konvertieren Sie es in eine JSON-Zeichenfolge mit json.stringify() und nehmen Sie es als eine Zeichenfolge in den Endpunkt dann serialisieren Sie es wieder in ein Objekt. Ich bevorzuge die erste Methode. – jbrown