2015-05-24 15 views
5

Ho un progetto WebAPI C# con un metodo che utilizza un ModelBinder personalizzato per il suo parametro di input. Quando guardo all'interfaccia utente Swagger che Swashbuckle genera, piuttosto che avere un singolo parametro "body", tutte le proprietà dei parametri del metodo sono elencate separatamente. Se mi tolgo l'attributo [ModelBinder] e passi all'utilizzo dell'attributo [FromBody], l'interfaccia utente di Swagger mostra la cosa giusta. Devo usare l'attributo [ModelBinder], quindi non è possibile cambiarlo.Swashbuckle e metodo Web Api con ModelBinder

C'è un modo per fare in modo che Swashbuckle generi il "singolo parametro di stile di attributo [FromBody] piuttosto che i parametri multipli che sta facendo?

+1

Perché non li incateni semplicemente come IHttpActionResult Foo ([FromBody] [ModelBinder] SomeModel model)? –

+1

Sebbene abbia risolto l'interfaccia utente di Swagger, interrompe completamente l'API stessa ... '" ExceptionMessage ":" Impossibile associare il parametro 'message' perché ha attributi in conflitto su di esso. "' – HenryC

+0

Puoi includere il campione completo (modello , modelbinder, firma del metodo api)? –

risposta

0

Ondrej ha ragione. Basta concatenarli:

IHttpActionResult Foo([FromBody][ModelBinder]SomeModel model) 
+0

Ciò potrebbe causare errori durante il richiamo all'API da ModelBinder.AllowMultiple = false. in modo che qualsiasi richiamo all'API porti a 500 risposte. – Roni

Problemi correlati