Ich versuche, einige Daten (multidimensionales Array) zu meinem GET-Controller (für die Anzeige in einem Modal/Dialogfeld) aus einer Liste (der Benutzer überprüft einige Werte und wird dann an a gesendet) modal/Dialogfeld, das die gewählten Werte angezeigt werden soll):Array zu MVC-Controller mit AJAX
$('input:checkbox').each(function() {
if ($(this).is(':checked')) {
var prop= [];
prop['Name'] = "TEST";
prop['Id'] = "123"
data.push(prop);
}
});
Als ich dies (oben) Daten einzuloggen, es sieht gut aus. Dann benutze ich den Ajax-Aufruf:
$.ajax({
type: "GET",
url: url,
data: JSON.stringify({ data }),
contentType: "application/json; charset=utf-8",
success: function() {
alert("OK");
}
});
Ich habe ein Modell für die Verwendung der Daten in der Aktion (und die Teilansicht):
public class MyClass
{
public string Name { get; set; }
public string Id { get; set; }
}
Das ist meine Aktion:
public ActionResult Merge(MyClass[] theData)
{
...
}
Aber in der Aktion ist die 'theData' immer Null. Wenn ich 'POST' im Ajax verwende, wird die POST-Aktion aufgerufen, und das möchte ich in diesem Schritt nicht tun. Ich möchte die POST-Aktion danach nutzen, wenn der Benutzer einige Änderungen vorgenommen hat (zB Titelwechsel) und dann speichert. DANN mache ich einen POST und speichere die neuen Daten.
'MyClass [] theData' ist kein mehrdimensionales Array. Und es muss sein: data: JSON.stringify ({theData: data}), ' –
Also kann ich MyClass [] theData nicht verwenden, oder was meinst du? – Robin
Ja, natürlich können Sie - einfach 'data verwenden: JSON.stringify ({theData: data}),' - mein Kommentar ist, dass 'MyClass []' ein Array ist (kein multidimensionales Array) –