Создание дополнительных данных при регистрации пользователя (ASP.NET Core MVC 2.1) - PullRequest
0 голосов
/ 26 января 2019

Я создал стандартное веб-приложение в приложении ASP.NET Core MVC 2.1, но я хотел бы создать дополнительные данные для пользователя в отдельной таблице при его регистрации.

Мои шаги:

  • Я создал новую таблицу
  • Чтобы получить доступ к «Identity as UI library», у меня есть scaffolded UI идентификации, но у меня нет контроллера, поэтому я пытаюсь использовать контекст данных из файла «Register.cshtml.cs», но это нужен параметр в конструкторе класса контекста данных.

В любом случае, использование контекста в представлении не рекомендуется, так каков наилучший способ сделать это?

Большое спасибо!

1 Ответ

0 голосов
/ 26 января 2019

Если вы хотите добавить дополнительный столбец в таблицу AspNetUsers для хранения дополнительных данных, обновите класс ApplicationUser следующим образом:

public class ApplicationUser : IdentityUser
{
    public string FullName {get; set;}
}

Теперь запустите новую миграцию и обновите базу данных соответственно.

Теперь обновите InputModel в файле Register.cshtml.cs следующим образом:

public class InputModel
{
        [Required]
        [Display(Name = "Full Name")]
        public string FullName { get; set; }

        [Required]
        [EmailAddress]
        [Display(Name = "Email")]
        public string Email { get; set; }

        [Required]
        [StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { get; set; }

        [DataType(DataType.Password)]
        [Display(Name = "Confirm password")]
        [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
        public string ConfirmPassword { get; set; }
}

Затем добавьте следующий код в форму Register в файле Register.cshtml:

<div class="form-group">
     <label asp-for="Input.FullName"></label>
     <input asp-for="Input.FullName" class="form-control" />
     <span asp-validation-for="Input.FullName" class="text-danger"></span>
</div>

Тогда в методе OnPostAsync в файле Register.cshtml.cs:

var user = new ApplicationUser { FulllName = Input.FullName, UserName = Input.Email, Email = Input.Email };

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...