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>  

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/ful1021/p/4804365.html