Html.DropDownListFor的用法总结

本文介绍如何在ASP.NET MVC中使用DropDownListFor辅助方法创建下拉列表,包括数据源转换、视图绑定及默认值设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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; }
1 //处理State,将IEnumerable<State>集合转换为IEnumerable<SelectListItem>集合
2 public IEnumerable<SelectListItem> GetStates()
3 {
4         return _usStateService.GetStates().OrderBy(c => c.StateAbbreviation).Select(state => new SelectListItem
5                                                                {
6                                                                    Text = state.StateAbbreviation,
7                                                                    Value = state.StateAbbreviation
8                                                                });
9 }

 

使用如下示例:

  • 首先我们要定义一个Model,用户在DropDownList中选择指定的值付给属性ReadyTimeHour  
1 public class EricSunModel
2 {
3     public string ReadyTimeHour { get; set; }
4 }
  • Model定义完毕之后,接下来处理Controller的逻辑
  • 这里使用ViewData来记录DropDownList中所要显示的所有列表数值
 1 public ActionResult EricSunAction()
 2 {
 3     EricSunModel esModel = new EricSunModel();
 4     esModel.ReadyTimeHour = "00";
 5 
 6     GenerateReadyTimeViewData();
 7 
 8     return View(esModel);
 9 }
10 
11 private void GenerateReadyTimeViewData()
12 {
13     ViewData["HourList"] = GetTimeHourList();
14 }
15 
16 //这里要对集合进行处理,因为第二个参数必须是IEnumerable<SelectListItem> 类型的集合
17 private List<SelectListItem> GetTimeHourList()
18 {
19     List<SelectListItem> hourList = new List<SelectListItem>();
20 
21     for (int i = 0; i < 24; i++)
22     {
23         if (i < 10)
24         {
25             hourList.Add(new SelectListItem { Text = "0" + i.ToString(), Value = "0" + i.ToString() });
26         }
27         else
28         {
29             hourList.Add(new SelectListItem { Text = i.ToString(), Value = i.ToString() });
30         }
31     }
32 
33     return hourList;
34 }
  • 接下来我们在View中可以用下面一行代码来绑定DropDownList
  • 注:第一个参数为绑定Model中的属性,即-->要为此属性赋值
  • 注:第二个参数为DropDownList的所有数据源,并且必须是IEnumerable<SelectListItem>类型的集合

1 @Html.DropDownListFor(m => m.ReadyTimeHour, ViewData["HourList"] as List<SelectListItem>)
  • 效果如下

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

 

转载于:https://www.cnblogs.com/sunshineground/p/4372538.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值