0

У меня есть основной вопрос о выпадающем списке ASP.NET MVC. У меня есть следующий DROPDOWNLISTASP.NET MVC DropdownList настройка по умолчанию, когда ничего не выбрано

Выбор цвета - -> вариант 1 Значение: "- 1"

Красный -> вариант 2 Значение: "Красный"

Зеленый -> вариант 3 Значение: "Зеленый"

Blue -> вариант 4 Значение: "Blue"

мой взгляд модель выглядит следующим образом:

public class ViewModel 
{  
    public List<SelectListItem> ColorList {get; set;} 

    public string Color {get; set;} 

} 

Если ничего не было выбрано, то при загрузке выпадающего списка я добавляю значение «-1» и добавляю текст «- Выбрать цвет» - и устанавливаю его как выбранный вариант. Для этого я должен написать специальную проверку, если выпадающий список необходим для проверки «-1», или если это не требуется, и я должен хранить нуль в базе данных, мне нужно отключить «-1» перед сохранением. Кажется, это хлопот для меня.

Мне было интересно, существует ли стандартный способ установки значений в раскрывающемся списке, когда ничего не выбрано, и стандартный способ их проверки?

+0

* «Мне было интересно, существует ли стандартный способ установки значений в раскрывающемся списке, когда ничего не выбрано, и стандартный способ их проверки?» * ~ Да, измените значение «-1» на пустую строку. так как плагин работает с 'select' по умолчанию. Если вы застряли с '-1', тогда вам нужно будет написать свое собственное правило. – Sparky

+0

См. Этот ответ: http://stackoverflow.com/a/6218499/594235 – Sparky

+1

@Sparky - это проблема MVC, а не только проблема jquery.validation, поскольку MVC переопределяет поведение jquery.validation по умолчанию. Несмотря на это, структура вставляет пустую строку, когда выбранное значение равно нулю. –

ответ

3

Ответ на самом деле очень простой и встроен в MVC и Microsoft ненавязчивую проверку.

Если выбранное значение равно NULL, тогда значение поля «option» отображается как значение по умолчанию. Другими словами, вы делаете что-то вроде этого:

Html.DropDownListFor(x => x.Color, Model.ColorList, "Select Color...") 

Так что, когда Model.Color равно нулю (убедитесь, что это обнуляемым значение), оно будет отображаться «Выберите цвет ...» или что вы хотите, чтобы положить туда.

Если Model.Color имеет [Обязательное] подтверждение, то оно гарантирует, что вы выберете значение до проверки модели.

Фактически, вы сражаетесь с каркасом, пытаясь сделать это вручную.

+0

Звучит неплохо. Кажется, это был ответ, который я искал. Благодаря! – user1527762

+0

Это прекрасно работает, если ничего не выбрано. Но если у вас есть что-то, что уже было выбрано, опция «Выбрать цвет ..» не отображается в раскрывающемся списке. Есть идеи? – user1527762

+0

@ user1527762 - зачем ты этого хочешь? –

Смежные вопросы