DropdownListFor default value

前端 未结 5 514
無奈伤痛
無奈伤痛 2020-11-28 06:38

Is there a simple way to add a \"--Please select--\" default option to a DropDownListFor in MVC 3?

5条回答
  •  感情败类
    2020-11-28 07:13

    I have a couple extension methods on SelectList

        public static SelectList PreAppend(this SelectList list, string dataTextField, string selectedValue, bool selected=false)
        {
            var items = new List();
            items.Add(new SelectListItem() { Selected = selected, Text = dataTextField, Value = selectedValue });
            items.AddRange(list.Items.Cast().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().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:

    @Html.DropDownListFor(m=>m.SelectedState, 
        Model.StateList().Default("Select One",""))
    

提交回复
热议问题