Mit dem Attribut [FromUri] - binden Sie ein komplexes Objekt mit einem geschachtelten Array

8

Ich möchte ein komplexes Objekt mit einem verschachtelten Array in der uri an eine MVC-Aktionsmethode in einer GET-Anfrage senden.

Betrachten Sie den folgenden Code:

%Vor%

Das funktioniert einwandfrei und bindet korrekt mit dem Standardmodellbinder in MVC Web Api .

Sie können dies jedoch auf "Nur MVC" und nicht auf "WebApi" umstellen, und das Standardmodellbindermodul bricht zusammen und kann die Eigenschaften von Objekten im verschachtelten Array nicht binden:

Beobachtungsliste

%Vor%

Ich würde gerne wissen, warum dies in einfachen MVC und wie man FromUriAttribute dieses Objekt korrekt in einfachen MVC binden

    
parliament 10.07.2013, 19:03
quelle

1 Antwort

9

Kernproblem hier ist, dass MVC und WebApi verschiedene Modellbinder verwenden. Selbst Basisschnittstellen sind anders.

%Vor%

Wenn Sie Daten mit Ihrem $ .ajax-Aufruf senden, senden Sie folgende Abfragezeichenfolgenparameter:

%Vor%

Das richtige Format, das mit dem MVC-Standardmodellbinder verbunden wird, hat jedoch eine andere Namenskonvention für Parameternamen:

%Vor%

Also würde dieser Methodenaufruf funktionieren:

%Vor%

Sie müssen Ihre Abfragezeichenfolge gemäß den Benennungskonventionen des MVC-Modellbinders erstellen.

Zusätzlich wird [FromUri] -Attribut in Ihrer Beispielaktion komplett ignoriert, da es MVC DefaultModelBinder nicht bekannt ist.

    
Nenad 10.07.2013, 20:15
quelle

Tags und Links