Проверяйте Html.DropDownListFor, а не отправляйте ошибочное значение, когда httpPost

1

У меня этот dropDownListFor:

@Html.DropDownListFor(m => m.ChoosenThemeSetting, Model.ThemeSettings.Select(k => new SelectListItem { Text = k.ChoosenTheme, Value = k.ChoosenTheme, }), "-- Select here --", new { @class = "form-control", id = "colorIfZero" })

В коде, который я установил "- Выберите здесь -", как значение по умолчанию. Если я не выберет ничего, кроме значения detault в моем dropDown, значение по умолчанию будет отправлено на мой [httpPost] -method.

Есть какой-то способ валитировать это. Например: если выбранное значение является моим значением по умолчанию, дайте мне подтверждение, чтобы выбрать somthing из моего dropDown. Becaues my default "- выберите здесь -" Я не хотел бы отправлять на мой [httpPost]

Теги:
validation
asp.net-mvc

1 ответ

0

Проблема решена благодаря этой ссылке: http://forums.asp.net/t/1580133.aspx?DropDownListFor+validation. Спасибо, равикатха!

Установив модельный класс, который содержит свойство ChoosenThemeSetting (в классе)

    [Required]
    [DisplayName("")]
    public string ChoosenThemeSetting { get; set; }

А затем измените мой DropDown-код на это (обратите внимание на строку string.empty-line)

@Html.DropDownListFor(m => m.ChoosenThemeSetting, Model.ThemeSettings.Select(k => new SelectListItem { Text = k.ChoosenTheme, Value = k.ChoosenTheme, }), string.Empty, new { @class = "form-control", id = "colorIfZero" })

И все работает отлично! Теперь я получаю validationmessage, чтобы выбрать некоторые значения из моего DropDown

  • 0
    Конечно, мне не нужно оставлять значение по умолчанию как String.Empty .. Изменил его на «- Выберите здесь -». И это тоже работает!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню