Gibt es in Nancy eine Möglichkeit, den Inhalt einer POST-Anfrage an einen dynamischen Typ zu binden?
Zum Beispiel:.
%Vor%Wie die vorherigen Antworten zeigen, gibt es keine Unterstützung für die direkte Bindung an einen dynamischen Typ, am ähnlichsten ist der ModelBinder, der von TheCodeJunkie in Ссылка
Dieser Ansatz hat jedoch ein Problem, und das aus diesem Code resultierende DynamicDictionary wird später nicht richtig serialisiert, wobei nur die Schlüssel des Wörterbuchs erzeugt werden und die Werte verloren gehen. Dies wird hier beschrieben Warum? Speichern eines Nancy.DynamicDictionary in RavenDB speichern nur die Eigenschaftsnamen und nicht die Eigenschaftswerte? und ab heute (Version 1.4.3) ist immer noch passiert, diese Vorgehensweise ernsthaft einzuschränken.
Die Lösung besteht darin, einen einfachen Trick zu verwenden, auf die im POST empfangenen Rohdaten zuzugreifen und mit JSON.Net zu deserialisieren. In Ihrem Beispiel wäre es:
%Vor%Beachten Sie, dass Sie Nancy.Extensions für den Request.Body.AsString () -Aufruf verwenden müssen.
Ich suchte nach einer Möglichkeit, meinen POST-Body als dynamisch zu deserialisieren und diese Frage zu finden. Ich werde meine Lösung mit Newtonsoft und der Extension-Methode einfügen, falls das Ergebnis für jemand anderen nützlich sein sollte.
Erweiterungsmethode
%Vor%Verwendung
%Vor%Ich bin mir nicht sicher, aber Sie können es versuchen:
%Vor%lassen Sie mich wissen, ob funktioniert:)
Tags und Links .net c# model-binding nancy