MVC CORE新增DropDownListFor的做法
基本上有2種做法
第1種-是在cshtml上直接做
第2種-是寫在controller中,用ViewBag帶到網頁中
如果是寫在controller,也可用ViewBag去讀取資料庫的項目,做動態的下拉選單
(相關的資料表、model都要先新增完成)
code:
在cshtml
@{
ViewData["Title"] = "Create";
List<SelectListItem> listItems= new List<SelectListItem>();
listItems.Add(new SelectListItem
{
Text = "ITEM-1",
Value = "ITEM-1"
});
listItems.Add(new SelectListItem
{
Text = "ITEM-2",
Value = "ITEM-2"
});
listItems.Add(new SelectListItem
{
Text = "ITEM-3",
Value = "ITEM-3"
});
}
--
@Html.DropDownListFor(model => model.DEP, listItems, "請選擇")
在controller
//Controllers
public IActionResult Create()
{
var selectList = new List<SelectListItem>()
{
new SelectListItem {Text="text-1", Value="value-1" },
new SelectListItem {Text="text-2", Value="value-2" },
new SelectListItem {Text="text-3", Value="value-3" },
};
//預設選擇哪一筆
selectList.Where(q => q.Value == "value-2").First().Selected = true;
ViewBag.SelectList = selectList;
return View();
}
//cshtml
@Html.DropDownListFor(model => model.DEP, new SelectList(ViewBag.selectList,"Value","Text"))
ViewBag去讀取資料庫的項目
List<QUESTIONDEP> QUESTIONDEPLIST = new List<QUESTIONDEP>();
QUESTIONDEPLIST = (from QUESTIONDEP in _context.QUESTIONDEP select QUESTIONDEP).ToList();
ViewBag.QUESTIONDEPLIST = QUESTIONDEPLIST.Select(c => new SelectListItem { Value = c.DEPID, Text = c.DEPNAME }).ToList();
自我LV~