/// <summary>
/// 枚举转化下拉列表数据集
/// </summary>
/// <param name="type">类型</param>
/// <param name="selected">选中项</param>
/// <returns>结果</returns>
public static IEnumerable<SelectListItem> EnumToListItem(Type type, string selected)
{
IList<SelectListItem> list = new List<SelectListItem> { new SelectListItem { Text = "全部", Value = string.Empty } };
Array array = Enum.GetValues(type);
foreach (int item in array)
{
string text = Enum.GetName(type, item);
var selectListItem = new SelectListItem
{
Text = text,
Value = item.ToString(CultureInfo.InvariantCulture),
Selected = !string.IsNullOrEmpty(selected) && selected == text
};
list.Add(selectListItem);
} return list;
} /// <summary>
/// 自定义DropDownList
/// </summary>
/// <param name="htmlHelper">htmlHelper</param>
/// <param name="name">name</param>
/// <param name="selectList">下拉列表集合</param>
/// <param name="obj">属性</param>
/// <returns>MvcHtmlString</returns>
public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItem> selectList, object obj)
{
string fullName = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(name);
if (string.IsNullOrEmpty(fullName))
{
throw new ArgumentException("name");
} StringBuilder listItemBuilder = new StringBuilder();
foreach (SelectListItem item in selectList)
{
TagBuilder builder = new TagBuilder("option")
{
InnerHtml = HttpUtility.HtmlEncode(item.Text)
}; if (item.Value != null)
{
builder.Attributes["value"] = item.Value;
} if (item.Selected)
{
builder.Attributes["selected"] = "selected";
} listItemBuilder.AppendLine(builder.ToString(TagRenderMode.Normal));
} TagBuilder tagBuilder = new TagBuilder("select")
{
InnerHtml = listItemBuilder.ToString()
}; if (obj != null)
{
IDictionary<string, object> htmlAttributes = new RouteValueDictionary(obj);
tagBuilder.MergeAttributes(htmlAttributes);
}
tagBuilder.MergeAttribute("name", fullName, true);
tagBuilder.GenerateId(fullName); return new MvcHtmlString(tagBuilder.ToString(TagRenderMode.Normal));
} /// <summary>
/// 自定义DropDownList
/// </summary>
/// <param name="htmlHelper">htmlHelper</param>
/// <param name="name">name</param>
/// <param name="selectList">下拉列表集合</param>
/// <returns>MvcHtmlString</returns>
public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItem> selectList)
{
return DropDownList(htmlHelper, name, selectList, null);
} /// <summary>
/// 自定义DropDownList
/// </summary>
/// <param name="htmlHelper">htmlHelper</param>
/// <param name="type">枚举类型</param>
/// <param name="name">name属性</param>
/// <param name="selected">选择项目</param>
/// <param name="obj">其他属性</param>
/// <returns>DropDownList</returns>
public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, Type type, string name, string selected, object obj)
{
IEnumerable<SelectListItem> selectListItem = EnumToListItem(type, selected);
return DropDownList(htmlHelper, name, selectListItem, obj);
} /// <summary>
/// 自定义DropDownList
/// </summary>
/// <param name="htmlHelper">htmlHelper</param>
/// <param name="type">枚举类型</param>
/// <param name="name">name属性</param>
/// <param name="selected">选择项目</param>
/// <returns>DropDownList</returns>
public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, Type type, string name, string selected)
{
return DropDownList(htmlHelper, type, name, selected, null);
} /// <summary>
/// 自定义DropDownList
/// </summary>
/// <param name="htmlHelper">htmlHelper</param>
/// <param name="type">枚举类型</param>
/// <param name="name">name属性</param>
/// <param name="obj">其他属性</param>
/// <returns>DropDownList</returns>
public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, Type type, string name, object obj)
{
return DropDownList(htmlHelper, type, name, null, obj);
} /// <summary>
/// 自定义DropDownList
/// </summary>
/// <param name="htmlHelper">htmlHelper</param>
/// <param name="type">枚举类型</param>
/// <param name="name">name属性</param>
/// <returns>DropDownList</returns>
public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, Type type, string name)
{
return DropDownList(htmlHelper, type, name, null, null);
}

MVC 枚举绑定 DropDownList的更多相关文章

  1. MVC后台绑定dropdownList

     public ActionResult Index()         {             List<SelectListItem> items = new List<Se ...

  2. 你想要的都在这里,ASP.NET Core MVC四种枚举绑定方式

    前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满 ...

  3. ASP.NET Core MVC四种枚举绑定方式

    前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满 ...

  4. 绑定枚举到dropdownlist

    pageTools.BindEnumToDropdownList(typeof(enumDealerArea), ddlBmwArea, new ListItem("--请选择--" ...

  5. Asp.Net MVC绑定DropDownList等控件

    测试环境:vs2013..Net4.5.mvc5 一.Asp.Net MVC绑定控件原理说明 以Html.TextBox为例 /// <param name="name"&g ...

  6. ASP.NET MVC 枚举类型转LIST CONTROL控件

    在实际应用中,我们经常会用到下拉框.多选.单选等类似的控件,我们可以统称他们为List Control,他们可以说都是一种类型的控件,相同之处都是由一个或一组键值对的形式的数据进行绑定渲染而成的. 这 ...

  7. ModelBinder——ASP.NET MVC Model绑定的核心

    ModelBinder——ASP.NET MVC Model绑定的核心 Model的绑定体现在从当前请求提取相应的数据绑定到目标Action方法的参数.通过前面的介绍我们知道Action方法的参数通过 ...

  8. ASP.NET MVC Model绑定(六)

    ASP.NET MVC Model绑定(六) 前言 前面的篇幅对于IValueProvider的使用做个基础的示例讲解,但是没并没有对 IValueProvider类型的实现做详细的介绍,然而MVC框 ...

  9. ASP.NET MVC Model绑定(五)

    ASP.NET MVC Model绑定(五) 前言 前面的篇幅对于IValueProvider的获取位置和所处的生成过程做了讲解,本篇将会对IValueProvider的使用做个基础的示例讲解,读完本 ...

随机推荐

  1. SQL备份数据库代码

    SQL备份数据库代码 #region 服务每天备份一次数据库 /// <summary> /// 服务每天备份一次数据库 /// </summary> public void ...

  2. 代码编译 Compile、Make、Build 的区别

    代码编译 Compile.Make.Build 的区别 https://blog.csdn.net/fanzheng220112583/article/details/7780250 VC++6.0中 ...

  3. 大神的博客地址liferay

    http://www.huqiwen.com/category/technology-share/liferay/

  4. Swift Optional

    拆包和解包的原因: 其实所谓的 nil 就是 Optional.None, 非 nil 就是Optional.Some, 然后会通过Some(T)包装(wrap)原始值,这也是为什么在使用 Optio ...

  5. linux常用命令:ifconfig 命令

    许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...

  6. QQ在线客服,默认到要加好友,授权也不起作用需要先开通QQ营销服务

    QQ在线客服,默认到要加好友,授权也不起作用需要先开通QQ营销服务http://wpa.qq.com/msgrd?v=3&uin=你的客服QQ号码&site=qq&menu=y ...

  7. oracle中验证身份证是否合法的函数脚本

    --创建函数 入参是身份证   返回1 合法 0不合法 CREATE OR REPLACE FUNCTION fn_checkidcard (p_idcard IN VARCHAR2) RETURN ...

  8. 全面理解Java内存模型(转)

    转自:http://blog.csdn.net/suifeng3051/article/details/52611310 Java内存模型即Java Memory Model,简称JMM.JMM定义了 ...

  9. linux常见命令ps的应用

    ps(Process Status)命令是linux中最常见的命令之一,它用来列出当前系统运行中的进程的状态信息.当然了,它只显示命令执行时的进程状态,如果想要动态列出状态信息,可以选择使用top命令 ...

  10. php 设置模式 单元素模式(单例模式或单件模式)

    单元素模式: 某些应用程序资源是独占的,因为有且只有一个此类型的资源.应用程序每次包含且仅包含一个对象,那么这个对象就是一个单元素.指的是在应用程序的范围内只对指定的类创建一个实例.通常该模式中包含一 ...