在我的控制,我有以下(略去了代碼):MVC3 DropDownListFor的SelectedItem非選擇
public ActionResult Edit(string id)
{
vw_user u = _respository.getProfile(id);
var model = new UserProfileEditViewModel
{
SL_collegeid = new SelectList(_respository.getColleges(u.State), "id", "college1", u.id)
};
return View(model);
}
現在,當我它顯示了特定大學(U返回前右調試模式。 id)在SelectList(SL_collegeid)中被選中。但是,當頁面加載所選項目時未選中。
這裏是CSHTML代碼:
@Html.DropDownListFor(model=>model.SL_collegeid, Model.SL_collegeid)
可能有人請幫我這嗎?
謝謝你在前進, 克里斯
謝謝你的快速反應。我對MVC/Razor非常陌生。話雖如此,我將等同於此操作作爲page_load事件執行的操作。但是,當我將ddl更改爲@ Html.DropDownList(「collegeid」,Model.SL_collegeid)時,它按預期工作。所以我想我的問題是DropDownListFor的錯誤? – Chris
@Chris - 啊,我想我誤解了你原來的問題。在DropDownListFor方法中,第一個參數「model.SL_collegeid」是模型中從列表中選擇的項目將被綁定到的位置,而第二個「Model.SL_collegeid」是選擇項目列表本身。在普通的DropDownList中,第一個參數是控件名稱,第二個參數是列表名稱。當你使用DropDownListFor時,你的「model.SL_collegeid」是什麼類型?那是集合,還是一個字符串/整型屬性來捕獲選定的ID? – davecoulter
模型.SL_collegeid是集合。所以我想我想將profileid中的collegeid添加到模型中,然後嘗試以這種方式捕捉它?所以代碼看起來像@ Html.DropDownListFor(model => model.id,Model.SL_collegeid - 不能工作順便說一句,我真的需要得到這個lambda函數的句柄。 – Chris