MVC4 繫結下拉框,編輯時繫結值
阿新 • • 發佈:2019-02-12
後臺:
public ActionResult Modify(int id) { //3.1.1 檢查id //3.1.2根據id查詢資料 Models.Student stu = (from s in db.Students where s.Id == id select s).FirstOrDefault(); //方法一、查詢班級資料,並 做成 下拉框 選項集合 //List<Models.Class> listClass = (from c in db.Classes where c.CIsDel == false select c).ToList(); //ViewBag.classList = listClass; //方法二 查詢班級資料,並轉成 下拉框選項 集合 List<SelectListItem> listClass = db.Classes.Where(c=>c.CIsDel==false).ToList()//先查詢資料 並 轉成 實體List集合 .Select( c=> new SelectListItem() { Text = c.CName, Value = c.CID.ToString(), Selected = (stu.CId == c.CID) }).ToList();//將實體集合 轉成 SelectListItem集合 //將 下拉框選項 集合 設定給 ViewBag ,用以傳遞 到 檢視 ViewBag.classList = listClass; //SelectList //3.1.載入檢視,並傳遞 要修改的資料 return View(stu); }
前臺,分別對應上面的方法一和方法二
<table> <tr> <td>姓名:</td> <td><input type="text" name="Name" value="@Model.Name" /></td> </tr> <tr> <td>班級:</td> <td> @* 這是方法一*@ @*<select name="CID"> @foreach (Class s in @ViewBag.classList as List<Class>) { if(s.CID == Model.CId){ <option selected value="@s.CID">@s.CName</option> }else{ <option value="@s.CID">@s.CName</option> } } </select>*@ @* 這是方法二*@ @Html.DropDownList("CId", ViewBag.classList as IEnumerable<SelectListItem>) </td> </tr> </table>