Мне удалось найти решение, которое нуждается в некоторых корректировках, но пока что работа на меня работает. Итак, вот что я сделал:
- Нам нужно подготовить файл Register.cs html. Для этого я использовал инструкции, данные пользователем с именем Джон Ра, в качестве ответа на другой вопрос. Это ссылка на то, что он написал { ссылка }. Но для вашего удобства я напишу и здесь шаги, хотя вся заслуга ему.
1.1 Щелкните правой кнопкой мыши по названию вашего проекта -> выберите «Добавить» -> «Новый элемент лесов».

1.2 На вкладке «Добавить новый элемент лесов» выберите «Идентификация» (слева). -> В середине окна нажмите на «Идентичность». -> Нажмите «Добавить».
1.3. На вкладке «Добавить личность» установите флажок «Учетная запись / регистрация». -> В раскрывающемся списке «Класс контекста данных» выберите «ApplicationDbContext ([ProjectName] .Data)». -> Нажмите «Добавить».

Теперь перейдем к части кодирования. Сначала мы отредактируем файл Register.cs html .cs, расположенный в [Имя проекта] /Areas/Identity/Pages/Account/Register.cshtml
2.1 Сначала я добавил новое свойство в класс RegisterModel, которое возвращает List.
public List<SelectListItem> Roles { get; }
2.2 Чем в конструкторе я создаю Список.
Roles = new List<SelectListItem>
{
new SelectListItem {Value = "Seller", Text ="Seller"},
new SelectListItem {Value = "Buyer", Text = "Buyer"},
};
2.3 После этого я добавил следующие свойства в класс InputModel, расположенный в RegisterModel
[Required]
[Display(Name = "UserRole")]
public string UserRole { get; set; }
2.4 Последнее, что я здесь сделал, это редактирование метода OnPostAsyn c. В проверке блока кода, если создание пользователя прошло успешно
if(result.Succeeded)
, я добавил следующую строку:
await _userManager.AddToRoleAsync(user, Input.UserRole);
Последний шаг заключается в редактировании файла Register.cs html, расположенного в [Имя проекта] / Области / Удостоверение / Страницы / Учетная запись
3.1 Прямо под кодом для «ConfirmPassword». "field
<div class="form-group">
<label asp-for="Input.ConfirmPassword"></label>
<input asp-for="Input.ConfirmPassword" class="form-control" />
<span asp-validation-for="Input.ConfirmPassword" class="text-danger"></span>
</div>
Я добавил код, который создает раскрывающийся список, используемый пользователем для выбора своей роли
<div class="form-group">
<select asp-for="Input.UserRole"
asp-items="@(Model.Roles)">
<option>Please select a role</option>
</select>
<span asp-validation-for="Input.UserRole" class="text-danger"></span>
</div>
Я включаю ссылку на весь проект https://github.com/Danail-Dimitrov/ASP.NET-Core-Demo.git, но имейте в виду, что я уже работал над этим проектом, поэтому в нем можно сделать гораздо больше, чем просто позволить пользователю выбрать свою роль при регистрации.