У меня есть две таблицы: пользователи и роли, каждому пользователю назначается роль. Используя Razor Pages, я могу создать нового пользователя и выбрать его роль в раскрывающемся списке, заполненном таблицей ролей. Когда я пытаюсь сохранить нового пользователя, я создаю новую роль в таблице ролей, а новый идентификатор роли сохраняется в таблице пользователей.
Класс роли:
public class Role
{
[Display(Name="Role ID")]
public int RoleId { get; set; }
[Display(Name="Role Name")]
public string name { get; set; }
[Display(Name="Role Description")]
public string description { get; set; }
}
Торговый представитель. Класс:
public class SalesRep
{
[Display(Name="Sales Rep. ID")]
public int SalesRepId { get; set; }
// unnecessary code removed ...
[Display(Name="Role")]
public Role role { get; set; }
}
Create.cshtml:
<div class="form-group">
<label asp-for="SalesRep.role" class="control-label"></label>
<select asp-for="SalesRep.role" class="form-control" asp-items="@Model.RoleList">
</select>
</div>
PageModel Класс:
protected void PopulateRoles() // called from OnGet()
{
RoleList = new SelectList(_context.Roles, nameof(Role.RoleId), nameof(Role.name));
}
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
_context.SalesReps.Add(SalesRep);
await _context.SaveChangesAsync();
return RedirectToPage("./Index");
}
Это не то, что мне нужно, мне нужно сохранить нового пользователя с RoleID из таблицы ролей, а не создавать нового.