Ho recentemente posto una domanda here su Stack Overflow sulla ricerca del giusto punto di estensibilità per il binding del modello nella beta dell'API Web. L'utilizzo di un fornitore personalizzato/IModelBinder
mi dà il controllo completo sull'associazione del modello e l'accesso ai provider di valore.Come posso richiamare l'associazione modello predefinita all'interno di un raccoglitore personalizzato nell'API Web MVC4?
Tuttavia, è davvero troppo controllo. Voglio solo controllare come sono mappati un paio di valori e non voglio legare il modello con codice manuale che altrimenti avrebbe funzionato bene.
In ultima analisi, questo è quello che mi piacerebbe essere in grado di fare:
public class MyCustomModelBinder : IModelBinder
{
public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext)
{
// Invoke default model binding
// Pull out custom values
var value1 = bindingContext.ValueProvider.GetValue("value1");
var value2 = bindingContext.ValueProvider.GetValue("value2");
bindingContext.Model.Value1 = DoCustomStuff(value1);
bindingContext.Model.Value2 = DoCustomStuff(value2);
return true;
}
... // Define DoCustomStuff
}
Sembra che sia abbastanza difficile da ottenere ahold di un provider predefinito per il WebAPI. Qualcuno sa se è accessibile e come dovrebbe essere consultato qui in un raccoglitore modello personalizzato?
Sì, purtroppo l'API Web è un animale completamente diverso in questo momento nella beta. L'operazione predefinita del provider di binder è un metodo astratto. –
Questo ha un tag di 'asp.net-web-api' che ha un binding di modello molto diverso da' MVC', quindi questa risposta non è affatto utile. – atconway