У меня этот 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]
Проблема решена благодаря этой ссылке: 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