MVC4 绑定下拉框,编辑时绑定值
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>
版权声明:本文为博主原创文章,未经博主允许不得转载。