Ich habe ein Bindemittel benutzerdefiniertes Modells in WebAPI, das die folgende Methode aus dem `Sytem.Web.Http.ModelBinding‘ Namespace verwendet, die ist der richtige Namensraum für die API für Web benutzerdefinierten Modell Binder erstellen:Wie Standardmodellbindung von benutzerdefinierten Binder in WebAPI aufgerufen wird?
public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext)
{
}
Ich habe eine HTTP POST
auf einem Controller, für den ich dieses benutzerdefinierte Modell Binder verwenden möchte. Das gebuchte Objekt enthält ungefähr 100 Felder. Ich möchte 2 von ihnen ändern. Was ich brauche, ist, dass die Standardmodellbindung eintritt und dann dieses modellgebundene Objekt für diese 2 Felder bearbeitet, so dass, sobald der Controller das Objekt empfängt, dieser makellos ist.
Das Problem ist, ich kann nicht scheinen, mein Objekt mit dem Standardbinder von der oben genannten Modellbindungsmethode zu modellieren. In MVC
gab es die folgenden:
base.BindModel(controllerContext, bindingContext);
Diesen Ansatz hat nicht Arbeit in WebAPI. Vielleicht mache ich das falsch und es gibt einen anderen Weg, um das zu erreichen, was ich will, also schlage vor, wenn ein benutzerdefiniertes Modellbinder nicht der richtige Ansatz ist. Was ich verhindern will, ist das manipulierte Objekt im Controller zu manipulieren. Ich könnte technisch tun, nachdem es Modell gebunden wurde, aber ich versuche, dies früher in der Aufrufliste zu tun, so dass der Controller nicht über die benutzerdefinierte Manipulation dieser 2 Felder kümmern muss.
Wie kann ich die Standardmodellbindung gegen die bindingContext
in meinem benutzerdefinierten Modellbinder initiieren, sodass ich ein vollständig gefülltes Objekt habe, wo ich dann die letzten beiden Felder manipuliere/massiere, bevor ich zurückkomme?