2017-12-23 7 views
0

kann nicht abgerufen werden Ich habe ein Array von Objekten, die ich von Sicht zu Controller mit AJAX übergeben. Array Daten: enter image description hereArray von AJAX zu Controller

Mein ActionMethod ist:

public JsonResult AddQuestionsToStep(long stepId, string questionText, string questionType, string correctAnswer = "", List<QuestionOption> choices = null) 

ich anderen Variablen Daten bin zu empfangen und Entscheidungen Array zählen aber die Daten in Auswahl-Array mapped.ie nicht, OptionName das hat Wert auf der Clientseite ist auf der Serverseite null. Was mache ich falsch?

+0

können Sie den Code schreiben, wie Sie bauen die Auswahlobjekte? Aus Ihrem Screenshot scheint, dass OptionId Funktion statt String –

+0

Ich verwende knockoutJs. Auch wenn "OptionId" eine Funktion ist, sollte es nicht die Eigenschaft "OptionName" zuordnen? –

+0

Nun, Sie versuchen, Array von Javascript-Objekten zu senden, ich glaube nicht, dass Ihr Backend in der Lage sein wird, das sowieso zu verarbeiten. Versuchen Sie, es als JSON.Stringify (Optionen) zu senden und analysieren Sie es auf Ihrer Back-End-Seite –

Antwort

1

Als Ihr choices ist ein JavaScript-Array von Gegenständen, serialisiert es und analysieren Sie es auf Ihrem Backend:

choices: JSON.stringify(choices) 

Auf dem Backend analysieren gerade die json:

List<QuestionOption> choices = (List<QuestionOption>) JsonConvert.DeserializeObject(choicesJson, typeof(List<QuestionOption>)); 
+0

Dank Mike, es hat funktioniert! Ich sollte die Frage früher stellen, ich habe meinen ganzen Tag verschwendet. –

+0

Gern geschehen, froh zu helfen! –

+0

BTW. Wenn es Ihnen nichts ausmacht, posten Sie die Zeile, die Sie verwenden, um es auf Ihrem Backend zu analysieren, so dass ich den asp.net-Code in der Antwort auf eine funktionierende Lösung aktualisieren kann, war ich blind blind den ASP-Code –

Verwandte Themen