ASP.Net MVC-Modell, das komplexes Objekt mit GET verknüpft

8

Ich habe eine Klasse in meinem Webprojekt:

%Vor%

was ein Parameter in meiner Controller-Methode ist:

%Vor%

Wenn ich die Methode mit POST aufrufen, funktioniert die Modellbindung automatisch (ich verwende angular auf der js-Seite, was wahrscheinlich keine Rolle spielt):

%Vor%

Wenn ich ein GET verwende, ist der Parameter immer Null im Controller.

%Vor%

Funktioniert die komplexe Modellbindung mit dem Standardmodellbinder nur für POSTs, oder kann ich etwas dafür tun, dass dies mit einem GET funktioniert?

    
Phil Sandler 07.01.2014, 20:26
quelle

3 Antworten

10

Die Antwort ist Ja. Der Unterschied zwischen GET- und POST-Anfragen besteht darin, dass ein POST-Body einen Inhaltstyp haben kann, damit er auf der Serverseite korrekt als XML oder Json usw. interpretiert werden kann; Für GET ist alles, was Sie haben, nur ein Querystring.

    
Lin 07.01.2014, 20:37
quelle
8

Mit ASP.NET MVC können Sie Ihr Modell tatsächlich an eine GET-Anforderung binden, so lange Sie die gleichen Abfragezeichenfolgen-Parameternamen wie die Eigenschaftsnamen Ihrer Modellklasse haben . Beispiel aus dieser Antwort :

%Vor%

Sie können eine Get-Anfrage wie folgt machen

%Vor%

und MVC bindet automatisch Ihr Modell:

%Vor%     
Beyers 07.01.2014 20:45
quelle
-2

Warum rufen Sie die Eigenschaft "Daten" im POST und "params" im GET? Beide sollten "Daten" genannt werden.

%Vor%     
Xavier J 07.01.2014 20:39
quelle