DropdownListFor значение по умолчанию

Есть ли простой способ добавить параметр «–Пожалуйста, выберите -» по умолчанию для DropDownListFor в MVC 3?

Итак, я сделал что-то вроде этого:

@Html.DropDownListFor(model => model.Dessert, new SelectList(Model.AvailableDesserts, "DessertID", "DessertName"), "---Select A Dessert ---") 

Кажется, работает очень хорошо. Dessert в моей модели просмотра – это тот, который выбран пользователем. AvailableDesserts – это коллекция из них. Надеюсь, это поможет.

У меня есть несколько методов расширения на 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); } 

Тогда моя razor выглядит так:

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

Привет, как насчет этого (в случае использования метода DisplayFor)

 private IEnumerable AddDefaultOption(IEnumerable list, string dataTextField, string selectedValue) { var items = new List(); items.Add(new SelectListItem() { Text = dataTextField, Value = selectedValue}); items.AddRange(list); return items; } 

Затем просто добавьте этот код в свой controller

 //lambda expression binding ViewBag.YourList = db.YourTable.Select(x => x).ToList().Select(x => new SelectListItem { Value = x.Id.ToString(), Text = x.DisplayName.ToString() }); ViewBag.YourList = AddDefaultOption(ViewBag.YourList, "Select One...", "null", true); 

И, наконец, в представлении вы можете отобразить выпадающее меню, combobox точно так же, как это

  
Your Label
@Html.DropDownListFor(model => model.ForeignKey, (IEnumerable)ViewBag.YourList)

Я хотел установить значение по умолчанию для того, что было передано в качестве параметра URL-адреса, называемого SiteType:

  
@Html.LabelFor(model => model.Type, new { @class = "control-label col-md-2" })
@Html.DropDownListFor(model => model.Type, ChangeOrderSite.SiteTypeNames.Select(s => new SelectListItem { Text = s.Value, Value = s.Key.ToString(), Selected = s.Key.ToString() == Request["SiteType"] }), new { @class = "control-label col-md-2" }) @Html.ValidationMessageFor(model => model.Type)

Мой раскрывающийся список – это список типов сайтов.

  • Что происходит в BeginProcessRequest ()?
  • Html5 data- * с asp.net mvc TextboxДля атрибутов html
  • MVC3 и First First Migrations - «модель, поддерживающая контекст« blah », изменилась с момента создания базы данных»
  • Сохранение данных многих из многих отношений в MVC Создание представления
  • Представление должно выводиться из WebViewPage или WebViewPage
  • Один DbContext для каждого запроса в ASP.NET MVC (без контейнера МОК)
  • Обновление Windows вызвало прекращение работы MVC3 и MVC4
  • Загрузка изображения в ASP.NET MVC
  • EF 4.1 - Code First - Ошибка серийной ссылки JSON
  • Как я должен объявлять отношения с внешними ключами с использованием структуры кода первого объекта (4.1) в MVC3?
  • ASP.NET MVC: пользовательская проверка по DataAnnotation
  • Давайте будем гением компьютера.