So übergeben Sie ein JavaScript-Objekt an einen C # MVC 4-Controller

8

Wie übergibt man in MVC4 ein JavaScript-Objekt an einen C # -Controller in AJAX? Schließlich habe ich das versucht, aber es hat nicht funktioniert.

Javascript Client Seite:

%Vor%

C # Serverseitige Methode:

%Vor%

Mein Parameter ist immer null. Ich habe versucht, den contentType zu ändern, aber es funktioniert immer noch nicht. Wo sind meine Fehler? Ich habe einige Posts gefunden, aber ich habe nicht gefunden, was ich falsch gemacht habe.

Vielen Dank.

    
Régis NIOX 07.01.2015, 21:56
quelle

2 Antworten

20
  1. Stellen Sie sicher, dass die Eigenschaftsnamen zwischen dem JavaScript- und dem C # -Modell übereinstimmen. In Ihrer Frage hatten Sie Propr1 und Propr2 für das JavaScript-Objekt, aber im C # -Modell hatten Sie Prop1 und Prop2 (fehlt das "r").
  2. Geben Sie stringify nicht vor dem Senden der Daten an, und legen Sie dataType nicht auf json fest. MVC kann problemlos mit einer Sammlung von Post-Parametern ohne die JSerialisierung in Ihrem Code parsen.
  3. Das contentType auslassen, ist nicht notwendig. WebAPI sollte dies automatisch erkennen. Du kannst es verlassen, aber es ist überflüssig.
  4. Stellen Sie sicher, dass die Modelleigenschaften öffentlich sind.

Javascript Client Seite:

%Vor%

C # Serverseitige Methode:

%Vor%     
danludwig 07.01.2015, 21:59
quelle
1

Der Wert, den Sie für die Eigenschaft data übergeben, sollte ein Objekt und keine Zeichenfolge sein:

%Vor%

Die Eigenschaftsnamen müssen übereinstimmen:

%Vor%

Sie müssen das Attribut [FromBody] für Ihren Parameterwert verwenden:

%Vor%

und die Eigenschaften Ihres Modelltyps müssen public :

sein %Vor%     
JLRishe 07.01.2015 22:00
quelle