Я пытаюсь получить раскрывающийся список, работающий над представлением создания для конкретного объекта модели. В данном случае рассматриваемой моделью является Department, и внутри этого объекта есть другой объект модели, который называется Division.
Моя модель Отдела является довольно простой POCO, за исключением свойства, называемого Division, которое ссылается на другую POCO (которая, как вы понимаете, по большей части имеет просто поле Id и поле Name).
У меня уже есть рабочий раскрывающийся список для представления создания (см. Код ниже)
<div class="form-group">
<label asp-for="Division" class="control-label"></label>
@Html.DropDownListFor(dept => dept.Division, new SelectList(ViewBag.Divisions, "Id", "Name"))
</div>
Да, в методе Create, который возвращает представление, я заполняю список ViewBag.Divisions, и все работает как запланировано.
Однако в методе Create моего контроллера, хотя он привязан к другим (текстовым) полям в представлении, я не могу понять, как заставить его заполнить свойство Division для объекта Department с помощью выбора из выпадающего списка. вниз. Мой метод создания ниже:
public async Task<IActionResult> Create([Bind("Id,Name,Description,IsActive,Division")] Department department)
{
if (ModelState.IsValid)
{
_context.Add(department);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(department);
}
Также, вот мои классы моделей:
public class Division
{
[Key]
public int Id { get; set; }
[Required]
[Display(Name = "Division Name")]
public string Name { get; set; }
[Display(Name = "Active")]
public bool IsActive { get; set; }
}
public class Department
{
[Key]
public int Id { get; set; }
[Required]
[Display(Name = "Department Name")]
public string Name { get; set; }
public string Description { get; set; }
public Division Division { get; set; }
[Display(Name = "Active")]
public bool IsActive { get; set; }
}
Идея состоит в том, что определенный отдел принадлежит (и связан с) к одному подразделению.
Спасибо!