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