MVC 枚举绑定 DropDownList
/// <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的更多相关文章
- MVC后台绑定dropdownList
public ActionResult Index() { List<SelectListItem> items = new List<Se ...
- 你想要的都在这里,ASP.NET Core MVC四种枚举绑定方式
前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满 ...
- ASP.NET Core MVC四种枚举绑定方式
前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满 ...
- 绑定枚举到dropdownlist
pageTools.BindEnumToDropdownList(typeof(enumDealerArea), ddlBmwArea, new ListItem("--请选择--" ...
- Asp.Net MVC绑定DropDownList等控件
测试环境:vs2013..Net4.5.mvc5 一.Asp.Net MVC绑定控件原理说明 以Html.TextBox为例 /// <param name="name"&g ...
- ASP.NET MVC 枚举类型转LIST CONTROL控件
在实际应用中,我们经常会用到下拉框.多选.单选等类似的控件,我们可以统称他们为List Control,他们可以说都是一种类型的控件,相同之处都是由一个或一组键值对的形式的数据进行绑定渲染而成的. 这 ...
- ModelBinder——ASP.NET MVC Model绑定的核心
ModelBinder——ASP.NET MVC Model绑定的核心 Model的绑定体现在从当前请求提取相应的数据绑定到目标Action方法的参数.通过前面的介绍我们知道Action方法的参数通过 ...
- ASP.NET MVC Model绑定(六)
ASP.NET MVC Model绑定(六) 前言 前面的篇幅对于IValueProvider的使用做个基础的示例讲解,但是没并没有对 IValueProvider类型的实现做详细的介绍,然而MVC框 ...
- ASP.NET MVC Model绑定(五)
ASP.NET MVC Model绑定(五) 前言 前面的篇幅对于IValueProvider的获取位置和所处的生成过程做了讲解,本篇将会对IValueProvider的使用做个基础的示例讲解,读完本 ...
随机推荐
- python3专业版安装及破解
1.网址 https://www.jetbrains.com/pycharm/download/#section=windows,打开页面,点击下载专业版 2.这是下载好的文件,双击运行即可. //详 ...
- [LeetCode] 67. Add Binary_Easy tag: String
Given two binary strings, return their sum (also a binary string). The input strings are both non-em ...
- Floyd 判圈算法
Floyd 判圈算法 摘自维基百科, LeetCode 上 141题 Linked List Cycle 用到这个, 觉得很有意思. 记录一下. 链接: https://zh.wikipedia.or ...
- 2018-2019-2 网络对抗技术 20165324 Exp5:MSF基础应用
2018-2019-2 网络对抗技术 20165324 Exp5:MSF基础应用 MSF基础知识: MSF基础框架: 主要模块模块(Module).模块是指Metasploit框架中所使用的一段软件代 ...
- python接口自动化-token参数关联登录(二)
原文地址https://www.cnblogs.com/yoyoketang/p/9098096.html 原文地址https://www.cnblogs.com/yoyoketang/p/68866 ...
- C# NPOI 操作excel
转载的文章,方便自己查看. 一.下载NPOI:http://down.gougou.com/down?cid=DAEA322D9D7F934B898077FB01C3A8CB02A746E6 二.项目 ...
- 消息系统之Apache ActiveMQ
一.下载运行MQ服务 1.下载ActiveMQ :http://activemq.apache.org/ 2.解压缩: 进入bin目录 win32和win64对应不同位的操作系统,选择进入 点击act ...
- node 开发web 登陆功能
node.js基于express框架搭建一个简单的注册登录Web功能 这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 ...
- 02: DOM 实例
1.1 Event 对象 <body> <a id="myAnchor" href="http://www.microsoft.com"> ...
- 20145106java实验四
实验名称:Java网络编程 实验内容: 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 结对小伙伴 20145109竺文君 博客地址: 在本次实验中,是以我作为服务 ...