У меня есть класс клиентов со свойством Gender. Я создал список типа «Пол», который содержит и номер идентификатора, и тип «Пол». Когда форма отправлена, я получаю нулевое значение.Dropdownlistfor возвращает значение null
Посмотреть
@model MovieRentals.ViewModel.CustomerView
<div class="form-group">
<h4>@Html.LabelFor(l => l.Customer.BirthDate)</h4>
@Html.DropDownListFor(l => l.CustomerGender, new SelectList(Model.CustomerGender, "GenderId", "GenderType"), "Select Gender", new { @class = "form-control" })
</div>
Модель
public class CustomerView
{
public IEnumerable<MembershipType> MembershipTypes{ get; set; }
public Customer Customer { get; set; }
public List<GenderClass> CustomerGender{ get; set; }
}
public class GenderClass
{
public int GenderId { get; set; }
public string GenderType { get; set; }
}
Контроллер
public ActionResult New()
{
var MembershipTy = _context.MemebershipType.ToList();
var ViewModel = new CustomerView();
ViewModel.CustomerGender = new List<GenderClass>()
{
new GenderClass(){ GenderId = 1, GenderType = "Male"},
new GenderClass() { GenderId = 2, GenderType = "Female"}
};
ViewModel.MembershipTypes = MembershipTy;
return View(ViewModel);
}
Поскольку вы используете то же свойство, что и источник данных, и удерживаете выделение. Для хранения выбранного значения требуется неперечислимое свойство. – CodeCaster
Вы не можете связать '
Атрибут select name' name' должен соответствовать свойству в вашем объекте, только тогда значение привязывается должным образом с помощью структуры MVC. Поэтому проверьте, какое имя имеет ваш тег select, и убедитесь, что у вас есть одно и то же имя свойства в вашей модели. –