I have a class with the following property. It constructs a SelectList
object from an existing list, and then sets the selected item.
public SelectList ProviderTypeList
{
get
{
SelectList list = new SelectList([...my collection...], "Value", "Key");
SelectListItem item = list.FirstOrDefault(sli => sli.Text == SelectedProviderType);
if (item != null)
item.Selected = true;
return list;
}
}
However, when this code is finished, item.Selected
is true. But the corresponding item in the SelectList
collection is still null.
I can't seem to find a way to update the object in the collection, so that the setting will be used in the resulting HTML.
I'm using @Html.DropDownListFor
to render the HTML. But I can see that the object within the collection was not modified as soon as this code has executed.
Can anyone see what I'm missing?
There is an optional additional parameter in SelectList
SelectList list = new SelectList([...my collection...], "Value", "Key", SelectedID);
Check the definition
public SelectList(IEnumerable items, string dataValueField, string dataTextField,
object selectedValue);
which sets the selected value and is of the same type as the dataValueField
I have a list of items called id_waers.
var id_waers = db.MONEDAs.Where(m => m.ACTIVO == true).ToList();
where the id is "WAERS".
I will create a SelectList with id_waers values, "WAERS" as id and the text to show will be the id too and show the "USD" value as selected
ViewBag.MONEDA = new SelectList(id_waers, "WAERS", dataTextField: "WAERS", selectedValue: "USD");
default value
I have another options
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With