@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 { @Model }