@{ var list = new SelectList(new List()); var htmlClass = "form-control select search"; if (!string.IsNullOrEmpty(ViewData.ModelMetadata.TemplateHint)) { htmlClass += " " + ViewData.ModelMetadata.TemplateHint; } 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); @Html.DropDownList("", list, "选择", new { @class = htmlClass }) } else { list = (Model as Enum).GetSelectList(); @Html.DropDownList("", list, new { @class = htmlClass }) } } else { list = (ViewData[ViewData.ModelMetadata.PropertyName + "SelectList"] as SelectList) ?? new SelectList(new List()); @Html.DropDownList("", list, "选择", new { @class = htmlClass }) } }