在Asp.Net MVC中能夠用DropDownListFor的方式來讓用戶選擇已定列表中的一個數值。用法不復雜,這裏簡單作一個記錄。緩存
public class EricSunModel { public string ReadyTimeHour { get; set; } }
public ActionResult EricSunAction() { EricSunModel esModel = new EricSunModel(); esModel.ReadyTimeHour = "00"; GenerateReadyTimeViewData(); return View(esModel); } private void GenerateReadyTimeViewData() { ViewData["HourList"] = GetTimeHourList(); } private List<SelectListItem> GetTimeHourList() { List<SelectListItem> hourList = new List<SelectListItem>(); for (int i = 0; i < 24; i++) { if (i < 10) { hourList.Add(new SelectListItem { Text = "0" + i.ToString(), Value = "0" + i.ToString() }); } else { hourList.Add(new SelectListItem { Text = i.ToString(), Value = i.ToString() }); } } return hourList; }
@Html.DropDownListFor(m => m.ReadyTimeHour, ViewData["HourList"] as List<SelectListItem>)
@Html.DropDownListFor(m => m.ReadyTimeHour, ViewData["HourList"] as List<SelectListItem>, "---Select---")
@Html.HiddenFor(m => m.ReadyTimeHourList)
[HttpPost] public ActionResult EricSunAction(EricSunModel model) { if (!ModelState.IsValid) { GenerateReadyTimeViewData(); return View(model); } // model.ReadyTimeHour; return RedirectToAction("OtherActionName"); }
http://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp.net-mvc-3-applications mvc