Следующий код для создания пользователей.У меня есть пользовательский класс, мне нужно создать пользователей здесь.Но у меня есть идентификаторы отделов, и этот идентификатор относится к другой таблице в базе данных, имя которой - Отдел.
public ActionResult Create()
{
// disable lazy because of error it creates
_db.Configuration.LazyLoadingEnabled = false;
var data = _db.Departments.OrderBy(a => a.DepartmentId).ToList();
ViewData["DepartmentList"] = data;
return View();
}
Вот вид:
@{
var departmentLists = ViewData["DepartmentList"]; // Cast the list
}
<div class="form-group">
@Html.LabelFor(model => model.Department, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EnumDropDownListFor(model => model.Department, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.Department, "", new { @class = "text-danger" })
</div>
</div>
Эта часть модели.департамента - это то место, где я проиграл.Мне нужно перечислить мой отдел в порядке списка, когда пользователь выбирает, я хочу выбрать идентификатор отдела.Как это;
![enter image description here](https://i.stack.imgur.com/2ZF1g.png)
Поэтому я хочу, чтобы пользователь увидел
Название отдела + Название подразделения
и когда они выбирают из списка, выбирается
департамент
, поэтому я могу добавить в базу данных вот так.
Вотмой метод создания сообщения:
public ActionResult Create([Bind(Include = "ID,LastName,FirstMidName,EnrollmentDate,Email,Department,Position,Active")] User user)
{
if (ModelState.IsValid)
{
_db.Users.Add(user);
_db.SaveChanges();
return RedirectToAction("Index");
}
return View(user);
}
Это мой класс пользователя;
public class User
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public int DepartmentId { get; set; }
// Other fields removed for brevity
}
Вот класс Department
;
public class Department
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int DepartmentId { get; set; }
public string DepartmentName { get; set; }
public string SubDepartmentName { get; set; }
}