@{ var list = (ViewData[ViewData.ModelMetadata.PropertyName + "SelectList"] as SelectList) ?? new SelectList(new List()); if (ViewData.ModelMetadata.IsEnum) { if (ViewData.ModelMetadata.IsNullableValueType) { var enumType = ViewData.ModelMetadata.ModelType.GetGenericArguments()[0]; var items = enumType.GetEnumValues().Cast() .Select(o => new SelectListItem { Value = o.ToString(), Text = (Enum.Parse(enumType, o.ToString()) as Enum).GetDisplayName() }) .ToList(); list = new SelectList(items, "Value", "Text", Model); } else { list = (Model as Enum).GetSelectList(); } } else { list = (ViewData[ViewData.ModelMetadata.PropertyName + "SelectList"] as SelectList) ?? new SelectList(new List()); } } @list.FirstOrDefault(o => o.Value == Model?.ToString())?.Text @if (ViewData.ModelMetadata.PropertyName.EndsWith("Id")) { if (ViewData.Get((Guid)Model) != null) { @ViewData.Get((Guid)Model) } }