当前位置:首页 > Windows程序 > 正文

【网摘】C#.NET 在 MVC 中动态绑定下拉菜单的方法

2021-03-25 Windows程序

在 Controller 控制器类中输入已下代码

 1 public class DemoController : Controller
 2 {
 3     public ActionResult BindDropDownList()
 4     {
 5         List<SelectListItem> select1 = new List<SelectListItem>
 6         {
 7             new SelectListItem { Text = "内容", Value = "值" },
 8             new SelectListItem 
 9         };
10         
11         ViewData["select1"] = new SelectList(select1, "Value", "Text", "此处为默认项的值");
12         
13         return View();
14     }
15 }

 

在 View 中使用

1 <%= Html.DropDownList("select1") %>

 

这种方法简单明了,也比较方便,如果不用从数据库中读取数据的话,可以采用这种方法。

 

2. 从数据库或者数组中循环读取下拉列表项 

此处省略数据库连接代码,,从数据库读出的数据与字符串数组中存储的数据类似,以下就以数组为例。 

在 Controller 中控制器类中输入已下代码

 1 public class DemoController : Controller
 2 {
 3     public ActionResult BindDropDownList()
 4     {
 5         string[] texts = new string[] { "一", "二", "三", n };
 6         string[] values = new string[] { "1", "2", "3", n };
 7         
 8         List<SelectListItem> select1 = new List<SelectListItem>();
 9         
10         for (int i = 0; i < texts.Length; i++)
11         {
12             select1.Add(new SelectListItem
13             {
14                 Text = texts[i],
15                 Value = values[i]
16             });
17         };
18         
19         ViewData["select1"] = new SelectList(select1, "Value", "Text", "此处为默认项的值");
20         
21         return View();
22     }
23 }

 

在 View 中使用 

1 <%= Html.DropDownList("select1") %>

 

其实这种方法看起来跟第1种比较类似,只是读取数据的时候,采用了一个循环的语句。 

 

3.  从数据库中读取某表的所有下拉菜单列表项

此处假设已存在 Category 类,可以通过 Category.GetList() 方法获取该表的所有分类,该表包含 ID 和 Name 两个数据列。

在 Controller 中控制器类中输入已下代码

 1 public class DemoController : Controller
 2 {
 3     public ActionResult BindDropDownList()
 4     {
 5         List<CategoryEntiry> categories = Category.GetAll();
 6         
 7         ViewData["Categories"] = new SelectList(categories, "ID", "Name");
 8         
 9         return View();
10     }
11 }

 

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/66966.html