在 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 }
在 View 中使用
1 // 首先將 ViewData 中的數據轉化爲 SelectList
2 <% SelectList categories = ViewData["Categories"] as SelectList; %>
3
4 // 而後才能輸出
5 <%= Html.DropDownList("Category", categories) %>
在這裏須要注意,就是第3種與前2種在 View 中使用方法稍有不一樣,固然也能夠將前2種方法改成第3種方法,或者將第3種方法改成前2種方法。