1. 程式人生 > >MVC4 繫結下拉框,編輯時繫結值

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>