Я создал классы классов, используя Entity Framework. Это то, что я получил:Выпадающий список MVC - ошибка null
public partial class Employees
{
public Employees()
{
this.Employees1 = new HashSet<Employees>();
this.Vacations = new HashSet<Vacations>();
}
public int EmployeeID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string MiddleName { get; set; }
public string Phone { get; set; }
public string JobTitle { get; set; }
public int ManagerID { get; set; }
public string LastUpdatedBy { get; set; }
public Nullable<System.DateTime> LastUpdatedDate { get; set; }
public bool Status { get; set; }
public virtual ICollection<Employees> Employees1 { get; set; }
public virtual Employees Manager { get; set; }
public virtual ICollection<Vacations> Vacations { get; set; }
}
Затем я создал вид Модель для этого класса:
public class EmployeeViewModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string MiddleName { get; set; }
public string Phone { get; set; }
public string JobTitle { get; set; }
public int ManagerID { get; set; }
public string ManagerFullName
{
get
{
return FirstName + " " + LastName;
}
}
public bool Status { get; set; }
public virtual ICollection<Employees> Employees1 { get; set; }
public virtual Employees Manager { get; set; }
}
В классе EmplyeeControler У меня есть действие:
public ActionResult Create()
{
EmployeeViewModel employeeVM = new EmployeeViewModel();
ViewBag.Employees1 = new SelectList(employeeVM.Employees1, "EmployeeID", "ManagerFullName");
return View(employeeVM);
}
И вид:
<div class="editor-label">
@Html.LabelFor(model => model.ManagerID, "Manager")
</div>
<div class="editor-field">
@Html.DropDownList("ManagerID", "--- Select Manager ---")
@Html.ValidationMessageFor(model => model.ManagerFullName)
</div>
Но я принимаю ошибку on-line:
Значение не может быть пустым. Имя параметра: элементы
ViewBag.Employees1 = new SelectList(employeeVM.Employees1, "EmployeeID", "ManagerFullName");
Что плохого в моем коде?
Как MVC будет знать, 'ViewBag.Employees1' должны быть использованы? Используйте '@ Html.DropDownListFor (model => model.ManagerID, ViewBag.Employees1," --- Select Manager --- ")'. – GSerg
Это не работает. Произошла та же ошибка. Почему вы хотели внести изменения в представление, когда ошибка возникает в контроллере? – ironcurtain