Leeres Array an Webapi senden

7

Ich möchte ein leeres Javascript-Array [] an webAPI POSTIEREN und es eine leere Liste von ganzen Zahlen erstellen lassen. Ich will es auch, wenn ich Javascript null auf webAPI poste, das es Null der Liste der ganzen Zahlen zuordnet.

JS:

%Vor%

c # webapi

%Vor%

Problem 1) Jquery verweigert das Senden von Daten {'' : []} als Post-Payload. Sobald ich etwas im Array hinzufüge funktioniert es wie {'' : [1,2,3]}

Problem 2) Das Übergeben eines leeren js-Arrays an den Controller ergibt null Basierend auf dem, was ich lese, auch wenn ich es bekomme, um ein leeres Array zu posten, initialisiert es die Liste als null. Diskutierte Lösungen haben es so, dass die Liste immer als leer initialisiert wird, aber das will ich nicht. Ich möchte, dass es in einigen Fällen null ist (wenn null / undefined an es gesendet wird) und wenn [] gesendet wird, sollte es als leer initialisiert werden.

Bearbeiten: Siehe Ссылка über warum ich verwende {'' : []}

    
LearningJrDev 07.06.2016, 20:28
quelle

3 Antworten

21

Verwenden Sie JSON.stringify(intArray) und contentType: 'application/json' funktioniert für mich:

%Vor%

%Vor%

%Vor%

    
tmg 17.06.2016 20:36
quelle
1
%Vor%

In JSON ist kein leerer Schlüsselname erlaubt.

Sende einfach das Array selbst.

%Vor%     
Jeremy J Starcher 07.06.2016 20:34
quelle
1

1. Verwenden Sie JSON.stringify (), um JavaScript-Objekte in JSON-Zeichenfolgen zu konvertieren.

2. Verwenden Sie contentType: 'application / json', da der MIME-Medientyp für JSON korrekt ist. Was ist der richtige JSON-Inhaltstyp?

3 dataType ist nicht erforderlich

Daten : JSON.stringify (intArray), contentType : 'application / json'

    
Alexandr 20.06.2016 12:47
quelle