@using System.Reflection
@using Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
@if (ViewData.ModelMetadata.PropertyName.EndsWith("Id"))
{
var value = "";
var id = Model as Guid?;
if (id.HasValue)
{
value = ViewData.Get(id.Value)?.ToString();
}
if (string.IsNullOrEmpty(value))
{
var key = ViewData.ModelMetadata.PropertyName + "SelectList";
if (ViewData.ContainsKey(key))
{
value = (ViewData[key] as SelectList)?.FirstOrDefault(o => o.Selected)?.Text;
}
}
@value
}
else if (ViewData.ModelMetadata.IsEnum)
{
@((Model as Enum)?.GetDisplayName());
}
else if ((this.ViewData.ModelMetadata as DefaultModelMetadata).Attributes.Attributes.Any(o => o.GetType() == typeof(ConvertTypeAttribute)))
{
var type = (this.ViewData.ModelMetadata as DefaultModelMetadata).Attributes.Attributes.FirstOrDefault(o => o.GetType() == typeof(ConvertTypeAttribute));
var value = (Model as Enum);
@value
}
else if (this.ViewData.ModelMetadata.UnderlyingOrModelType == typeof(bool))
{
var model = Model as bool?;
if (model.HasValue && model.Value)
{
}
else
{
}
}
else
{
@Model
}