Mvc HtmlHelper 方法扩展 DropDownListFor
项目中遇到表单提交中遇到枚举,忽然想起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.DropDownListFor(m => m.ArrtPublish.Visibility, PublishType.Public, "Public")
变淡的属性为枚举,给出枚举类型,给出默认选择的下拉列表内容。
这样前后台数据绑定,
程序员再也不用担心枚举下拉列表的数据绑定了。
至此给大家提供一个思路 。
忘大家发散思维集思广益。
休息一会,养养眼!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。