zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    LoadRunner如何监控Linux下的系统资源
    shareeverything and sharenothing原理区别
    LoadRunner下如何监控Windows系统资源
    简明 Vim 练级攻略
    自由地使用那10000个Web协议的License进行压力测试
    自己做的西直门桥
    Visual Studio问题解答(不断更新)
    记2012微软编程之美全国挑战赛
    matlab也能创作歌曲
    拈游戏
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/4211933.html
Copyright © 2011-2022 走看看