Mvc HtmlHelper 方法扩展 DropDownListFor

Mvc HtmlHelper 方法扩展 DropDownListFor

1
项目中遇到表单提交中遇到枚举,忽然想起1年前的1小段代码结合HtmlHelper在扩展一下 便于开发中使用<br><br><br>
复制代码
  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);

        }

}
复制代码

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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")

变淡的属性为枚举,给出枚举类型,给出默认选择的下拉列表内容。 

这样前后台数据绑定, 

程序员再也不用担心枚举下拉列表的数据绑定了。 

 

至此给大家提供一个思路 。 

忘大家发散思维集思广益。 

 

休息一会,养养眼!

Mvc HtmlHelper 方法扩展 DropDownListFor

 

 
 
标签:  MVC

你可能感兴趣的:(mvc)