Я создал свою модель User с помощью Razor Pages, и на странице создания я хочу вставить роль пользователя в соединительную таблицу UserRoles.
это моя модель
[Table("Users")]
public class User
{
public User()
{
IsActivo = true;
}
public int Id { get; set; }
[Required]
[Display(Prompt = "Username")]
public string Username { get; set; }
[Display(Name = "Último Acesso")]
public DateTime? DataSessao { get; set; }
[Display(Name = "Activo")]
public bool IsActivo { get; set; }
public Colaborador Colaborador { get; set; }
public ICollection<UserRoles> UserRoles { get; set; }
}
и это модель создания
public class CreateModel : PageModel
{
private readonly HutIS.Models.HutISContext _context;
public CreateModel(HutISContext context)
{
_context = context;
}
public IActionResult OnGet()
{
DepartamentosOptions = _context.Departamento.Select(d =>
new SelectListItem
{
Value = d.Id.ToString(),
Text = d.Nome
}).ToList();
RolesOptions = _context.Roles.Select(d =>
new SelectListItem
{
Value = d.Id.ToString(),
Text = d.Type
}).ToList();
return Page();
}
[BindProperty]
public User User { get; set; }
public List<SelectListItem> DepartamentosOptions { get; set; }
public List<SelectListItem> RolesOptions { get; set; }
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
_context.User.Add(User);
await _context.SaveChangesAsync();
return RedirectToPage("./Index");
}
}
на HTML
<div class="form-group">
<label asp-for="User.UserRoles" class="control-label"></label>
<select asp-for="User.UserRoles" asp-items="Model.RolesOptions" class="form-control form-control-sm">
<option value="">Selecione um Departamento...</option>
</select>
<span asp-validation-for="User.UserRoles" class="text-danger"></span>
</div>
Я не совсем уверен, как я могу это сделать, конечно, я получаю здесь исключение, но как я могу связать UserRoles, если это коллекция в User?
EDIT
Я решил проблему исключений, это было связано со свойствами модели. Теперь проблема в том, что в таблицу UserRoles ничего не вставлено, я не совсем уверен, как это сделать, поскольку у его пользователя нет свойства навигации по UserRoles в отличие от Departments.
как видите, отношения правильные