Array von Strings an die Web-API-Methode senden

7

Dies ist mein clientseitiger Ajax-Aufruf:

%Vor%

Dies ist der Chrome-Netzwerk-Header:

%Vor%

Formular-Dataview-URL codiert

%Vor%

Das ist meine Webapi-Controller-Methode:

%Vor%

Ergebnis:

Beim Debuggen gibt der Datenparameter in UpdateStatusToDelete {string[0]} anstelle von Daten zurück: a Daten: b Daten: c Daten: d

Was mache ich falsch? Jede Hilfe wird wirklich geschätzt.

    
Eunyoung Ro 08.01.2013, 05:43
quelle

6 Antworten

28

Um einfache Typen übergeben zu können, müssen die zu puffernden Daten die Form eines Namenswertpaares haben, wobei der Namensbereich eine leere Zeichenfolge ist. Also müssen Sie den Ajax-Aufruf wie folgt machen:

%Vor%

Ergänzen Sie zusätzlich in Ihrer Web-API-Aktion das Attribut [FromBody] mit einem Kommentar. Etwas wie:

%Vor%

Das sollte den Trick machen.

    
Mark Berryman 11.01.2013 22:55
quelle
2

verwende var jsonText = { data: JSON.stringify(list)}

    
Cris 08.01.2013 05:52
quelle
2

Sie sollten das list selbst übergeben und kein anderes Objekt, das es umschließt.

z. Übergeben Sie Folgendes:

%Vor%

in

%Vor%

Ihre Methodensignatur auf dem Server ist korrekt.

    
Shaulian 08.12.2014 07:21
quelle
1

Im Backend könnten Sie FormDataCollection.GetValues(string key) verwenden, um ein Array von Strings für diesen Parameter zurückzugeben.

%Vor%     
Stelian Matei 17.02.2017 08:28
quelle
0

Verwenden Sie die obige Methode, um das Array zu senden, wie von cris in Ihrem jquery ajax-Aufruf vorgeschlagen. JSON-Daten befinden sich normalerweise im Schlüsselwertpaar.

%Vor%

Sie können dies auch mit einem zweidimensionalen Array

erreichen

Zusätzlich dazu im Webapi-Projekt.

Erstellen Sie unter dem models-Ordner Ihres Web-API-Projekts eine Klassendatei. Möglicherweise class1.cs .

Erstellen Sie 4 Eigenschaften

%Vor%

Mach das jetzt in deinem Controller

%Vor%

Ich bin sicher, das wird funktionieren.

    
Gaurav Shah 21.12.2014 16:17
quelle
0

Das Einstellen des dataType wird Ihnen nicht helfen.

So mache ich es:

%Vor%

Der Server Teil

%Vor%

Referenzen

jQuery.ajax ()

    
Sergey 29.05.2015 18:07
quelle