在ASP.NET MVC中可以用DropDownListFor的方式来让用户选择已定列表中的一个数值。

注:重点是要将DropDownList的数据源转换成IEnumerable<SelectListItem>类型的结合;

  SelectListItem类在System.Web.MVC命名空间下,其成员如下:

  • public bool Disabled { get; set; }
  • public SelectListGroup Group { get; set; }
  • public bool Selected { get; set; }
  • public string Text { get; set; }
  • public string Value { get; set; }
 //处理State,将IEnumerable<State>集合转换为IEnumerable<SelectListItem>集合
public IEnumerable<SelectListItem> GetStates()
{
return _usStateService.GetStates().OrderBy(c => c.StateAbbreviation).Select(state => new SelectListItem
{
Text = state.StateAbbreviation,
Value = state.StateAbbreviation
});
}

使用如下示例:

  • 首先我们要定义一个Model,用户在DropDownList中选择指定的值付给属性ReadyTimeHour  
 public class EricSunModel
{
public string ReadyTimeHour { get; set; }
}
  • Model定义完毕之后,接下来处理Controller的逻辑
  • 这里使用ViewData来记录DropDownList中所要显示的所有列表数值
 public ActionResult EricSunAction()
{
EricSunModel esModel = new EricSunModel();
esModel.ReadyTimeHour = ""; GenerateReadyTimeViewData(); return View(esModel);
} private void GenerateReadyTimeViewData()
{
ViewData["HourList"] = GetTimeHourList();
} //这里要对集合进行处理,因为第二个参数必须是IEnumerable<SelectListItem> 类型的集合
private List<SelectListItem> GetTimeHourList()
{
List<SelectListItem> hourList = new List<SelectListItem>(); for (int i = ; i < ; i++)
{
if (i < )
{
hourList.Add(new SelectListItem { Text = "" + i.ToString(), Value = "" + i.ToString() });
}
else
{
hourList.Add(new SelectListItem { Text = i.ToString(), Value = i.ToString() });
}
} return hourList;
}
  • 接下来我们在View中可以用下面一行代码来绑定DropDownList
  • 注:第一个参数为绑定Model中的属性,即-->要为此属性赋值
  • 注:第二个参数为DropDownList的所有数据源,并且必须是IEnumerable<SelectListItem>类型的集合
 @Html.DropDownListFor(m => m.ReadyTimeHour, ViewData["HourList"] as List<SelectListItem>)
  • 效果如下

  • 如果我们想在DropDownList中的最顶端添加一个默认值的话,添加第三个参数
 @Html.DropDownListFor(m => m.ReadyTimeHour, ViewData["HourList"] as List<SelectListItem>, "---Select---")

Html.DropDownListFor的用法总结的更多相关文章

  1. DropDownListFor的用法

    Asp.Net MVC中DropDownListFor的用法   在Asp.Net MVC中可以用DropDownListFor的方式来让用户选择已定列表中的一个数值.用法不复杂,这里简单做一个记录. ...

  2. Asp.Net MVC中DropDownListFor的用法(转)

    2016.03.04 扩展:如果 view中传入的是List<T>类型 怎么使用 DropList 既然是List<T> 那么我转化成 T  List<T>的第一个 ...

  3. Asp.Net MVC中DropDownListFor的用法

    在Asp.Net MVC中可以用DropDownListFor的方式来让用户选择已定列表中的一个数值.用法不复杂,这里简单做一个记录. 首先我们要定义一个 Model ,用户在 DropDownLis ...

  4. 转:Asp.Net MVC中DropDownListFor的用法

    在Asp.Net MVC中可以用DropDownListFor的方式来让用户选择已定列表中的一个数值.用法不复杂,这里简单做一个记录. 首先我们要定义一个 Model ,用户在 DropDownLis ...

  5. 下拉框Html.DropDownList 和DropDownListFor 的经常用法

    一.非强类型: Controller: ViewData["AreId"] = from a in rp.GetArea()                             ...

  6. ASP.NET MVC HtmlHelper用法集锦

    ASP.NET MVC HtmlHelper用法集锦 在写一个编辑数据的页面时,我们通常会写如下代码 1:<inputtype="text"value='<%=View ...

  7. MVC HtmlHelper用法大全

    MVC HtmlHelper用法大全HtmlHelper用来在视图中呈现 HTML 控件.以下列表显示了当前可用的一些 HTML 帮助器. 本主题演示所列出的带有星号 (*) 的帮助器. ·Actio ...

  8. MVC中HtmlHelper用法大全参考

    MVC中HtmlHelper用法大全参考 解析MVC中HtmlHelper控件7个大类中各个控件的主要使用方法(1) 2012-02-27 16:25 HtmlHelper类在命令System.Web ...

  9. C#枚举最优雅的用法

    public enum AbilityLevel { /// <summary> /// Indicates that the individual has a general knowl ...

随机推荐

  1. add命令

    将文件加入到索引,要使用add命令.在<file>指定加入索引的文件.用空格分割可以指定多个文件. git add demo.html test.html //添加两个文件 添加当前目录下 ...

  2. android4.4上全屏界面实现禁止状态栏下拉

    附上我改动的方法:PhoneWindowManager.java里面的改动 --- a/frameworks/base/policy/src/com/android/internal/policy/i ...

  3. 数据透视表sql:用SQL行列转换实现数据透视的一些思考

    用SQL行列转换实现数据透视的一些思考 摘要:根据对报表开发过程中碰到的需要用SQL行列转换进行解决的一类查询统计问题的分析,逐步探索求解得到一种较通用的解决思路,并用函数进行实现.该解决思路及函数实 ...

  4. 仿美团ViewPager+GridView

    在接下来我要实现一个仿美团的效果 1.首先写一个登录注册界面用到了,很简单... 这里要提醒各位在调用方法时有set...     也有add....  的方法,为了严谨可以做些正则判断手机号,用se ...

  5. flask模块

    import flask, json #把当前的文件当成一个服务 server = flask.Flask(__name__) @server.route('/index', methods=['ge ...

  6. Windows游戏编程大师技巧之三角形填充

    一.三角形的种类 三角形一般可以分为如下的四种类型(这四种类型是对于计算机来说的,不是数学意义上的分类): 平顶三角形:就是在计算机中显示的上面两个顶点的Y坐标相同. 平底三角形:就是在计算机中显示的 ...

  7. hdu1059(多重背包优化)

    使用一种二进制的优化, 可以完美的解决这题,<背包九讲>中说的非常好 但是还有一种线性复杂的算法. 应该算是该题很巧妙的解法 ;i++) { ;l--) { ) continue; ;k& ...

  8. LeetCode 笔记系列八 Longest Valid Parentheses [lich你又想多了]

    题目:Given a string containing just the characters '(' and ')', find the length of the longest valid ( ...

  9. 在Windows上手动安装php开发环境

    安装MySQL 使用官方提供提供的安装包一键安装即可. 打开 mysql,选择Windows,MSI Installer点击下载.附:最新版mysql5.7.18下载地址 点击installer安装, ...

  10. node 事件监听器

    创建文件events.js,依次写入下列代码: 事件模块引入与实例化监听器 // 引入事件模块 var e = require('events'); // 实例化事件监听 var emitter = ...