項目中遇到表單提交中遇到枚舉,突然想起1年前的1小段代碼結合HtmlHelper在擴展一下 便於開發中使用
public static class HtmlHelperExtensions { public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, Enum enumType, string defualtName) { IList<SelectListItem> selectList = enumType.ToSelectListItem(defualtName); return SelectExtensions.DropDownListFor<TModel, TProperty>(htmlHelper, expression, selectList, (string)null, (IDictionary<string, object>)null); } }
public static class ExSelectListItem { public static List<SelectListItem> ToSelectListItem(this Enum valueEnum) { return (from int value in Enum.GetValues(valueEnum.GetType()) select new SelectListItem { Text = Enum.GetName(valueEnum.GetType(), value), Value = value.ToString() }).ToList(); } public static List<SelectListItem> ToSelectListItem(this Enum valueEnum, string selectName) { return (from int value in Enum.GetValues(valueEnum.GetType()) select new SelectListItem { Text = Enum.GetName(valueEnum.GetType(), value), Value =value.ToString(), Selected = Enum.GetName(valueEnum.GetType(), value) == selectName ? true : false }).ToList(); } }
經過這兩個擴展咱們將會有以下的前臺處理操做 html
@Html.DropDownListFor(m => m.ArrtPublish.Visibility, PublishType.Public, "Public")程序員
變淡的屬性爲枚舉,給出枚舉類型,給出默認選擇的下拉列表內容。 express
這樣先後臺數據綁定, this
程序員不再用擔憂枚舉下拉列表的數據綁定了。 spa
至此給你們提供一個思路 。 code
忘你們發散思惟集思廣益。 htm
休息一會,養養眼!blog