You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
1003 B

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