I have several extension methods in SelectList
public static SelectList PreAppend(this SelectList list, string dataTextField, string selectedValue, bool selected=false) { var items = new List<SelectListItem>(); items.Add(new SelectListItem() { Selected = selected, Text = dataTextField, Value = selectedValue }); items.AddRange(list.Items.Cast<SelectListItem>().ToList()); return new SelectList(items, "Value", "Text"); } public static SelectList Append(this SelectList list, string dataTextField, string selectedValue, bool selected=false) { var items = list.Items.Cast<SelectListItem>().ToList(); items.Add(new SelectListItem() { Selected = selected, Text = dataTextField, Value = selectedValue }); return new SelectList(items, "Value", "Text"); } public static SelectList Default(this SelectList list,string DataTextField,string SelectedValue) { return list.PreAppend(DataTextField, SelectedValue, true); }
Then my razor looks like this:
@Html.DropDownListFor(m=>m.SelectedState, Model.StateList().Default("Select One",""))
asawyer Aug 29 '11 at 11:53 on 2011-08-29 11:53
source share