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
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.
Tags und Links asp.net-mvc c# model-binding