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.

37 lines
1.1 KiB

@using Microsoft.AspNetCore.Mvc.ModelBinding.Metadata
@{
var key = ViewData.ModelMetadata.PropertyName + "SelectList";
}
@if (ViewData.ContainsKey(key))
{
var value = "";
var id = Model as Guid?;
if (id.HasValue)
{
value = ViewData.Get(id.Value)?.ToString();
}
if (string.IsNullOrEmpty(value))
{
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?;
@Html.CheckBox("", new { disabled = "disabled", style = "width:20px;height:20px;margin:2px 0;" })
}
else
{
@Model
}