Member 8583441 Ответов: 1

MVC 5 dropdownlist value возвращает null при отправке формы


Моя проблема я привязываю данные к выпадающему списку из базы данных, и до этого момента он работает нормально. Когда я отправляю форму, она автоматически возвращает нулевое значение и, наконец, ModelState.IsValid также возвращает false.

Во время поиска в Интернете я дал код:
var errors = ModelState.Values.SelectMany(x => x.Errors);


Я кратко опишу свою проблему

Пожалуйста, помогите мне решить эту проблему

Что я уже пробовал:

мой контроллер:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult EmployeeLeave(EmployeeLeaveViewModel objLeave)
{
    string typeOfLeaveText = Request.Form["HiddenText"].ToString();
    if (string.IsNullOrEmpty(objLeave.HiddenText))
    {
        ModelState.AddModelError("Error", "Leave type cannot be default value");
    }
}

мой взгляд:
<div class="form-group">
    @Html.DropDownListFor(m => m.HiddenText, Model.Nature, "-Please Select-")
    @Html.HiddenFor(m => m.HiddenText)
    @Html.ValidationMessageFor(m => m.Nature, "", new { @style = "color:red" })
</div>

моя модель:
public string HiddenText { get; set; }

[Required(ErrorMessage = "Type of Leave field is required")]
[Display(Name = "Type of Leave")]
public List<SelectListItem> NatureofLeave { get; set; }

Thomas Daniels

Это ваш полный обзор? Где код, чтобы отправить его на контроллер? Это с тегом "форма" и кнопкой? JavaScript?

Member 8583441

Он находится в теге формы и также имеет отправку.... Далее связанные формы у меня есть jQuery но не связанные с вышеописанной проблемой сэр

1 Ответов

Рейтинг:
1

Richard Deeming

Цитата:
@Html.DropDownListFor(m => m.HiddenText, Model.Nature, "-Please Select-")

Ваш выпадающий список публикуется в HiddenText поле. По-видимому, он должен быть отправлен в NatureOfLeave вместо этого поле:
@Html.DropDownListFor(m => m.NatureOfLeave, Model.Nature, "-Please Select-")


Кроме того, ваша модель, похоже, путает список опций с выбранным параметром:
// The value selected in the list:
[Required(ErrorMessage = "Type of Leave field is required")]
[Display(Name = "Type of Leave")]
public string NatureOfLeave { get; set; }

// The list of options to pick from:
public List<SelectListItem> Nature { get; set; }


Member 8583441

Извините за поздний ответ... мой проект был завершен и у меня есть еще один проект ...... И я очень благодарен вам @Richard Deeming sir