У меня есть модели, указанные ниже, и у меня есть простой контроллер, который отображает группы. Я хочу добавить участников в каждую группу с помощью всплывающей страницы. Как я могу этого добиться? мне непонятен сам лог c в ядре EF. может ли кто-нибудь объяснить, как связать пользователей с группой, добавить userId и groupId в таблицу членства
public class Group
{
public int Id { get; set; }
public string GroupName { get; set; }
public virtual ICollection<Membership> Membership { get; set; }
}
public class User
{
public int Id { get; set; }
public string Username { get; set; }
public virtual ICollection<Membership> Membership { get; set; }
}
public class Membership
{
public int MembershipId { get; set; }
public int UserId { get; set; }
public int GroupId { get; set; }
public DateTime AssignDate { get; set; }
public Employee Employee { get; set; }
public Group Group { get; set; }
}
Я дошел до этого момента, я не знаю, как продолжить:
public class MainViewModel
{
public IEnumerable<Group> Groups { get; set; }
}
Мой контроллер:
public IActionResult Index()
{
var vm = new MainViewModel();
vm.Groups = _context.Group
.Include(u => u.Membership)
.ThenInclude(u => u.User);
return View(vm);
}
[HttpPost]
public IActionResult AddMember(int Id, User user)
{
//TODO: Associate member to a group
return RedirectToAction(nameof(Index));
}
Мой вид:
<table class="table">
<thread>
<tr>
<th>
Group
</th>
<th>
Users
</th>
<th></th>
</tr>
</thread>
<tbody>
@foreach (var item in Model.Groups)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.GroupName)
</td>
<td>
@foreach (var user in item.Membership)
{
@Html.DisplayFor(moelItem => user.User.Username) <br />
}
</td>
<td>
<button class="btn btn-success" data-toggle="modal" data-target="#item-@item.Id">Add Members</button>
</td>
</tr>
}
</tbody>
@foreach (var item in Model.Groups)
{
<div class="modal fade" id="item-@item.Id" tabindex="-1" role="dialog" aria-labelledby="ModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<form asp-action="AddMember" asp-controller="Main" method="post">
<input type="hidden" name="Id" value="@item.Id" />
<div class="modal-header">
Add members to @item.GroupName
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="input-group mb-3">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<input type="submit" class="btn btn-primary form-control" value="Submit" />
</div>
</form>
</div>
</div>
</div>
}