diff options
Diffstat (limited to 'src/Mvc/Mvc.ApiExplorer/src/DefaultApiDescriptionProvider.cs')
-rw-r--r-- | src/Mvc/Mvc.ApiExplorer/src/DefaultApiDescriptionProvider.cs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/Mvc/Mvc.ApiExplorer/src/DefaultApiDescriptionProvider.cs b/src/Mvc/Mvc.ApiExplorer/src/DefaultApiDescriptionProvider.cs index e189fdac07..ffe76751eb 100644 --- a/src/Mvc/Mvc.ApiExplorer/src/DefaultApiDescriptionProvider.cs +++ b/src/Mvc/Mvc.ApiExplorer/src/DefaultApiDescriptionProvider.cs @@ -658,12 +658,23 @@ public class DefaultApiDescriptionProvider : IApiDescriptionProvider ModelMetadata = bindingContext.ModelMetadata, Name = GetName(containerName, bindingContext), Source = source, - Type = bindingContext.ModelMetadata.ModelType, + Type = GetModelType(bindingContext.ModelMetadata), ParameterDescriptor = Parameter, BindingInfo = bindingContext.BindingInfo }; } + private static Type GetModelType(ModelMetadata metadata) + { + // IsParseableType || IsConvertibleType + if (!metadata.IsComplexType) + { + return EndpointModelMetadata.GetDisplayType(metadata.ModelType); + } + + return metadata.ModelType; + } + private static string GetName(string containerName, ApiParameterDescriptionContext metadata) { var propertyName = !string.IsNullOrEmpty(metadata.BinderModelName) ? metadata.BinderModelName : metadata.PropertyName; |