Аналогично этому вопросу и многим другим, я не могу получить выбранное значение из моего @ Html.Dropdownlistfor. Но я думаю, что избегал обычных ошибок, поэтому не уверен, что делаю неправильно. Вот мой контроллер:
public class AdministrationController : Controller
{
public ActionResult ParamStatique()
{
ParamStatiqueViewModels psvm = new ParamStatiqueViewModels()
{
a_NEquipe = "1"
};
using (Dal dal = new Dal())
{
psvm.EquipesTravaux = dal.GetEquipesTravaux();
}
return View(psvm);
}
[HttpPost]
public ActionResult ParamStatique(ParamStatiqueViewModels psvm)
{
Debug.WriteLine("NEquipe : " + psvm.a_NEquipe);
using (Dal dal = new Dal())
{
psvm.EquipesTravaux = dal.GetEquipesTravaux();
}
return View(psvm);
}
}
Мой ModelView выглядит так:
public class ParamStatiqueViewModels
{
public List<EQUIPE_TRAVAUX> EquipesTravaux { get; set; }
[Display(Name = "N° Équipe")]
public string a_NEquipe { get; set; }
}
Вот мой взгляд:
@using (Html.BeginForm("ParamStatique", "Administration", null, FormMethod.Post, new { id = "modalform", role = "form" }))
{
<div class="modal-body" id="modal-body">
<div class="form-group" id="aNEquipe">
@Html.LabelFor(m => m.a_NEquipe, new { @class = "col-form-label" })
@Html.DropDownListFor(m => m.a_NEquipe, new SelectList(Model.EquipesTravaux, "TRAV_SEQ", "TRAV_CODE"), new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.a_NEquipe, "", new { @class = "text-danger" })
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Enregistrer</button>
</div>
}
Итак, мой класс EQUIPE_TRAVAUX, сгенерированный из EF6:
public partial class EQUIPE_TRAVAUX
{
public short TRAV_SEQ { get; set; }
public string TRAV_CODE { get; set; }
}
Раскрывающийся список заполнен правильно, и я могу выбрать нужный вариант, но когда я нажимаю кнопку отправки "Enregistrer", он возвращает пустое поле a_NEquipe в моей модели, даже если я правильно указал его в Html Helper:
@Html.DropDownListFor(m => m.a_NEquipe, new SelectList(Model.EquipesTravaux, "TRAV_SEQ", "TRAV_CODE"), new { @class = "form-control" })
Результат Debug.WriteLine("NEquipe : " + psvm.a_NEquipe);
всегда равен нулю так:
NEquipe:
И если я добавлю тег [Required] в мою модель, проверка на стороне клиента заблокирует обратный вызов формы.
Как я могу получить выбранное значение в ожидаемой переменной a_NEquipe?