Html.DropDownListFor的用法总结

在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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在ASP.NET MVC中,可以使用`Html.DropDownListFor`来生成下拉列表。您需要将下拉列表绑定到一个包含选项值和文本的集合,然后将其传递给`Html.DropDownListFor`方法。 以下是一个示例,演示如何将`Html.EditorFor`转换为下拉列表: ```csharp // 假设您有一个名为"Model"的模型 public class Model { public int SelectedValue { get; set; } public IEnumerable<SelectListItem> Options { get; set; } } // 在控制器中,您可以将选项添加到集合中 public ActionResult Index() { var model = new Model { // 填充选项集合 Options = new List<SelectListItem> { new SelectListItem { Value = "1", Text = "选项1" }, new SelectListItem { Value = "2", Text = "选项2" }, new SelectListItem { Value = "3", Text = "选项3" } } }; return View(model); } // 在视图中,您可以使用以下代码生成下拉列表 @model Model @Html.DropDownListFor(m => m.SelectedValue, Model.Options) ``` 在上面的代码中,我们将`SelectedValue`属性绑定到下拉列表中所选项的值,并将`Options`属性作为下拉列表的选项集合。`Html.DropDownListFor`方法将自动生成下拉列表的HTML标记。 ### 回答2: HTML下拉菜单是网页开发中常见的交互元素,用于展示一组选项供用户选择。而MVC框架是一种将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个部分的设计模式。 在ASP.NET MVC中,可以使用HTML.DropDownListFor方法将HTML下拉菜单与MVC框架结合起来使用。该方法接受一个表示属性表达式的参数,并根据该属性的值生成下拉菜单的选项。 例如,如果要在一个表单中使用下拉菜单来选择用户的性别,可以先在模型中定义一个用于保存用户性别的属性: ```csharp public class User { public string Name { get; set; } public string Gender { get; set; } } ``` 然后在视图中,在表单中使用HTML.DropDownListFor方法来生成下拉菜单: ```html @model User @using (Html.BeginForm()) { @Html.LabelFor(m => m.Name) @Html.EditorFor(m => m.Name) @Html.LabelFor(m => m.Gender) @Html.DropDownListFor(m => m.Gender, new SelectList(new[] { new SelectListItem { Value = "Male", Text = "男" }, new SelectListItem { Value = "Female", Text = "女" }, }, "Value", "Text")) <input type="submit" value="提交" /> } ``` 在这个例子中,HTML.DropDownListFor方法的第一个参数指定了要绑定的属性表达式,第二个参数是一个SelectList对象,用于指定下拉菜单的选项。可以通过在SelectListItem中设置Value和Text属性来定义下拉菜单的选项值和显示文本。 当用户提交表单时,MVC框架会自动将用户选择的值绑定到模型的相应属性上,以便在控制器中进行处理。这样,通过HTML.DropDownListFor方法,可以很方便地将HTML下拉菜单与MVC框架进行集成。 ### 回答3: 在ASP.NET MVC中,下拉菜单是一种用于显示和选择选项的常见元素。在使用ASP.NET MVC中的HTML下拉菜单时,可以使用不同的方式来创建和呈现下拉菜单。 一种常见的方法是使用HTML.DropDownListFor()方法来创建下拉菜单。该方法需要指定一个属性来保存选择的值,并提供一个选择列表作为参数。通过在控制器中设置选择列表的数据源,可以在视图中使用这个方法来创建下拉菜单。 例如,假设有一个名为"Category"的属性来保存选择的值。控制器可以通过查询数据库或其他方式获取一个包含所有选项的列表,并将其传递给视图。 在视图中,可以使用HTML.DropDownListFor()方法来创建下拉菜单。该方法使用属性名作为第一个参数,并使用选择列表作为第二个参数。通过设置选择列表的Value属性和Text属性,可以指定选项的值和显示文本。 在视图中的代码示例: @Html.DropDownListFor(model => model.Category, new SelectList(ViewBag.CategoryList, "Value", "Text"), "请选择一个选项") 上述代码中,model => model.Category表示选择值将保存在模型的Category属性中。new SelectList(ViewBag.CategoryList, "Value", "Text")创建了一个选择列表,其中ViewBag.CategoryList是从控制器传递过来的包含选项的列表。 这是使用HTML.DropDownListFor()方法创建下拉菜单的一种常见方式。还有其他一些方式,比如使用HTML.DropDownList()方法或手动创建HTML标签来显示下拉菜单。每种方法都有不同的优缺点,可以根据具体需求选择合适的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值