Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/aspnetcore.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/Mvc/Mvc.ApiExplorer/src/DefaultApiDescriptionProvider.cs')
-rw-r--r--src/Mvc/Mvc.ApiExplorer/src/DefaultApiDescriptionProvider.cs13
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;