Здравствуйте знатоки.
Суть следующая - есть модели:
public class Department
{
public int DepartmentID { get; set; }
public string Name { get; set; }
public List<Person> Persons { get; set; }
}
public class Person
{
public int PersonID { get; set; }
public string Name { get; set; }
public int DepartmentID { get; set; }
public Department Department { get; set; }
}
Ну и соответственно контекст:
public class DepartmentContext : DbContext
{
public DepartmentContext (DbContextOptions<DepartmentContext> options)
: base(options)
{
}
public DbSet<Department> Department { get; set; }
public DbSet<Person> Person { get; set; }
}
VS сгенерировало контроллер, все работает... При отображении Person показывало имя и ID Department, ну здесь я все подправил и показывает имя Department. Но вот с редактированием и созданием проблема. Изначально сгенерировало код контроллера :
public IActionResult Create()
{
ViewData["DepartmentID"] = new SelectList(_context.Department, "DepartmentID", "DepartmentID");
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("PersonID,Name,DepartmentID")] Person person)
{
if (ModelState.IsValid)
{
_context.Add(person);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
ViewData["DepartmentID"] = new SelectList(_context.Department, "Name", "Name", person.DepartmentID);
return View(person);
}
Ну и View:
<div class="form-group">
<label asp-for="Name" class="control-label"></label>
<input asp-for="Name" class="form-control" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="DepartmentID" class="control-label"></label>
<select asp-for="DepartmentID" class ="form-control" asp-items="ViewBag.DepartmentID"></select>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-default" />
</div>
Соответственно при создании нового человека будет страничка с полем имя и выпадающий список DepartmentID. Я попробовал и сделал что бы выпадающий список был имя Department, НО как теперь сохранить? выдает ошибку....