Asp.net-Mvc
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 來傳遞物品或者我應該使用不同的媒介?因為如果我以這種方式使用它,它會刪除選項上的選定標誌。
試試這樣:
ViewBag.ListOfCodes = new SelectList(mymodelinstance.Codes, "Id", "Name"); ViewBag.Codes = "C";在您看來:
<%= Html.DropDownList( "Codes", (IEnumerable<SelectListItem>)ViewBag.ListOfCodes, new { style = "max-width: 600px;" } ) %>為此,您顯然必須在您的集合中擁有一個 Id = “C” 的項目,如下所示:
ViewBag.ListOfCodes = new SelectList(new[] { new { Id = "A", Name = "Code A" }, new { Id = "B", Name = "Code B" }, new { Id = "C", Name = "Code C" }, }, "Id", "Name");