Così ho il seguente (pseudo codice):mvc C# html.dropdownlist e 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;
il mio punto di vista:
<%: Html.DropDownList("Codes", (List<SelectListItem>)ViewBag.ListOfCodes , new { style = "max-width: 600px;" })%>
ora, prima che raggiunga la vista, la "lista" lo ha popolato con oggetti e ha contrassegnato l'oggetto che è già selezionato. ma quando arriva alla vista, nessuna delle opzioni è contrassegnata come selezionata.
la mia domanda è, è possibile utilizzare un viewbag per passare gli elementi o devo usare un mezzo diverso? in quanto rimuove il flag selezionato sulle opzioni se lo utilizzo in questo modo.
Si può interrompere il controller e ricontrollare che almeno un elemento di 'list' è stato contrassegnato come' Selected = true; '? Non credo che ViewBag stia scherzando con la tua lista. – StuartLC
sì, l'ho fatto e segna l'opzione giusta. – gdubs