It seems the ApiExplorer ignores valid actions when there are placeholders in the route template which cannot be mapped to an action parameter, e.g.
The ApiExplorer will not consider the route template "users/{username}/SomeAction" to be valid for action SomeAction([ModelBinder] MyUser user), that may use the value of UserName for the binding of the MyUser parameter (or not).
The action will be ignored by the ApiExplorer, although it can indeed be invoked by the framework.
Note that in the example, the action will be shown in the ApiExplorer if a default value is provided for placeholder {username}, as a possible workaround.
Comments: Fixed: https://aspnetwebstack.codeplex.com/SourceControl/changeset/e27f2d9158526dfecf81ab37ebff7484c64f2b1a
The ApiExplorer will not consider the route template "users/{username}/SomeAction" to be valid for action SomeAction([ModelBinder] MyUser user), that may use the value of UserName for the binding of the MyUser parameter (or not).
The action will be ignored by the ApiExplorer, although it can indeed be invoked by the framework.
Note that in the example, the action will be shown in the ApiExplorer if a default value is provided for placeholder {username}, as a possible workaround.
Comments: Fixed: https://aspnetwebstack.codeplex.com/SourceControl/changeset/e27f2d9158526dfecf81ab37ebff7484c64f2b1a