所以我有以下的(僞代碼):MVC C#html.dropdownlist和viewbag
string selectedvalud = "C";
List<SelectListItem> list= new List<SelectListItem>();
foreach(var item in mymodelinstance.Codes){
list.Add(new SelectListItem { Text = item.Name, Value = item.Id.Tostring(), Selected = item.Id.ToString() == selectedvalue ? true : false });
}
ViewBag.ListOfCodes = list;
對我的看法:
<%: Html.DropDownList("Codes", (List<SelectListItem>)ViewBag.ListOfCodes , new { style = "max-width: 600px;" })%>
現在,它到達認爲, 「列表」 前已經用項目填充它並標記了已經選擇的項目。但是當它進入視圖時,沒有任何選項被標記爲選中狀態。
我的問題是,是否有可能使用viewbag來傳遞項目,或者我應該使用不同的媒介?因爲它會刪除選項中的選定標誌,如果我以這種方式使用它。
你可以在你的控制器斷點,並仔細檢查至少有一項'list'已被標記爲'Selected = true;'?我不認爲ViewBag正在搞亂你的列表。 – StuartLC
是的,我做到了這一點,它標誌着正確的選擇。 – gdubs