爱上MVC~为CheckBoxFor和RadioButtonFor加个扩展方法吧(希望MVC5把这方法收纳——呵呵)_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 爱上MVC~为CheckBoxFor和RadioButtonFor加个扩展方法吧(希望MVC5把这方法收纳——呵呵)

爱上MVC~为CheckBoxFor和RadioButtonFor加个扩展方法吧(希望MVC5把这方法收纳——呵呵)

 2013/12/17 23:09:06  张占岭  博客园  我要评论(0)
  • 摘要:回到目录说在前我都是喜欢把问题复杂化,还有总是喜欢把问题简单化,偷懒化,这也需就是一个程序员的追求吧,呵呵。我不太喜欢重复的东西,当你看到页面上有一个以上相同的代码时,那可以说,你的代码有重构的余地,应该考虑重构了,今天看了以前同事的博客,写了关于DropDownList的用法,如何将集合数据绑定到下拉列表框上,讲的不错,但最后在说checkbox和radiobutton时,我感觉有点重复了,我说的是代码重复了,还有就是代码复杂化了,就是说
  • 标签:MVC 方法 for RAD

回到目录

说在前

我都是喜欢把问题复杂化,还有总是喜欢把问题简单化,偷懒化,这也需就是一个程序员的追求吧,呵呵。

我不太喜欢重复的东西,当你看到页面上有一个以上相同的代码时,那可以说,你的代码有重构的余地,应该考虑重构了,今天看了以前同事的博客,写了关于DropDownList的用法,如何将集合数据绑定到下拉列表框上,讲的不错,但最后在说checkbox和radiobutton时,我感觉有点重复了,我说的是代码重复了,还有就是代码复杂化了,就是说,我再使用集合来产生checkbox和radiobutton时,代码有些复杂了,这不是我们希望看到的,所以,我觉得有必要把它重构一下,为mvc加两个扩展方法吧,呵呵。

做在后

DropDownListFor的方法签名做的不错,很面向对象,很简洁,但不知不何,checkbox和radiobutton确没有这样的重载,呵呵

        public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList);
        public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, IDictionary<string, object> htmlAttributes);
        public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, object htmlAttributes);
        public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, string optionLabel);
        public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, string optionLabel, IDictionary<string, object> htmlAttributes);
        public static MvcHtmlString DropDownListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, string optionLabel, object htmlAttributes);

对于checkbox和radiobutton它们只有简单的几个重载,没有对集合的支持,所以,我的这次代码扩展,主要是针对集合来说的,看方法签名:

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" alt="" />

下面看一下原代码,它直接写在了System.Web.Mvc命名空间下,这更说明我是对微软MVC的一个扩展,希望MVC5出来时,可以把这些都集成进去,呵呵

#region 单选框和复选框的扩展
        /// <summary>
        /// 根据列表输出checkbox
        /// </summary>
        /// <typeparam name="TModel"></typeparam>
        /// <typeparam name="TProperty"></typeparam>
        /// <param name="htmlHelper"></param>
        /// <param name="expression"></param>
        /// <param name="selectList"></param>
        /// <returns></returns>
        public static MvcHtmlString CheckBoxFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList)
        {
            return CheckBoxFor(htmlHelper, expression, selectList, null);
        }
        /// <summary>
        ///  根据列表输出checkbox,selValue为默认选中的项
        /// </summary>
        /// <typeparam name="TModel"></typeparam>
        /// <typeparam name="TProperty"></typeparam>
        /// <param name="htmlHelper"></param>
        /// <param name="expression"></param>
        /// <param name="selectList"></param>
        /// <param name="selValue"></param>
        /// <returns></returns>
        public static MvcHtmlString CheckBoxFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, string selValue)
        {
            return CheckBoxAndRadioFor(expression, selectList, false, selValue);
        }
        static MvcHtmlString CheckBoxAndRadioFor<TModel, TProperty>(Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, bool isRadio, string selValue)
        {
            string FieldName = ExpressionHelper.GetExpressionText(expression);
            StringBuilder str = new StringBuilder();
            int c = 0;
            string check = string.Empty;
            string type = isRadio ? "Radio" : "checkbox";

            foreach (var item in selectList)
            {
                c++;
                if (selValue != null && selValue == item.Value)
                    check = "checked='checked'";
                str.AppendFormat("<input type='{3}' value='{0}' name={1} id={1}{2} " + check + "/>", item.Value, FieldName, c, type);
                str.AppendFormat("<label for='{0}{1}' >{2}</lable>", FieldName, c, item.Text);
            }
            return MvcHtmlString.Create(str.ToString());
        }
        /// <summary>
        ///  根据列表输出radiobutton
        /// </summary>
        /// <typeparam name="TModel"></typeparam>
        /// <typeparam name="TProperty"></typeparam>
        /// <param name="htmlHelper"></param>
        /// <param name="expression"></param>
        /// <param name="selectList"></param>
        /// <returns></returns>
        public static MvcHtmlString RadioButtonFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList)
        {
            return RadioButtonFor(htmlHelper, expression, selectList, null);
        }
        /// <summary>
        /// 根据列表输出radiobutton,selValue为默认选中的项
        /// </summary>
        /// <typeparam name="TModel"></typeparam>
        /// <typeparam name="TProperty"></typeparam>
        /// <param name="htmlHelper"></param>
        /// <param name="expression"></param>
        /// <param name="selectList"></param>
        /// <param name="selValue"></param>
        /// <returns></returns>
        public static MvcHtmlString RadioButtonFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> selectList, string selValue)
        {
            return CheckBoxAndRadioFor(expression, selectList, true, selValue);
        }
        #endregion

 回到目录

发表评论
用户名: 匿名