5
votes

I have a C# WebAPI project with a method that uses a custom ModelBinder for its input parameter. When I look at the Swagger UI that Swashbuckle generates, rather than having a single "body" parameter, all of the properties' of the method's parameters are listed out separately. If I get rid of the [ModelBinder] attribute and switch to using the [FromBody] attribute, the Swagger UI shows the right thing. I have to use the [ModelBinder] attribute, so switching that out isn't an option.

Is there a way to make Swashbuckle generate the "[FromBody] attribute style" single parameter rather than the multiple parameters that it's doing?

1
Why don't you just chain them like IHttpActionResult Foo([FromBody][ModelBinder]SomeModel model) ? - Ondrej Svejdar
Although it fixed the Swagger UI, it completely breaks the API itself... "ExceptionMessage": "Can't bind parameter 'message' because it has conflicting attributes on it." - HenryC
Can you include the full sample (model, modelbinder, api method signature) ? - Ondrej Svejdar
@HenryC Did you find a fix for this ?? - SJMan

1 Answers

0
votes

Ondrej is right. Just chain them:

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