Хобрук: Ваш путь к мастерству в программировании

Вставить данные в другую таблицу во время регистрации в ASP.NET MVC5

Я понимаю, что ASP.NET MVC создает таблицу по умолчанию «AspNetUser» для хранения информации о пользователях во время регистрации. Как мне получить некоторые из этих данных, таких как «Имя пользователя», и сохранить их в отдельной таблице во время процесса регистрации.

Я пытаюсь получить «имя пользователя», предоставленное пользователем, которое по умолчанию хранится в «Таблице AspNetUser», и сохранить его в «Таблице учащихся» также во время процесса регистрации.

Зарегистрировать действие

  // POST: /Account/Register
    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> Register(RegisterViewModel model)
    {

        if (ModelState.IsValid)
        {

        StudentEntities db = new StudentEntities();

        var student = new Student
       {
          Name = model.Username     
       };
           db.Student.Add(Student);
           db.SaveChanges();

            var user = new ApplicationUser() { UserName = model.UserName };
            var result = await UserManager.CreateAsync(user, model.Password);
            if (result.Succeeded)
            {
                await SignInAsync(user, isPersistent: false);
                return RedirectToAction("Welcome", "Home");
            }
            else
            {
                AddErrors(result);
            }
        }

        // If we got this far, something failed, redisplay form
        return View(model);
    }

Это не работает

Это не работает

  StudentEntities db = new StudentEntities();

        var student = new Student
       {
          Name = model.Username     
       };
           db.Student.Add(Student);
           db.SaveChanges();

  • Вероятно, вам нужно подробнее рассказать о том, почему это вам не подходит. 14.12.2015
  • My StudentEntities, который предназначен для моего студенческого стола, не распознается 14.12.2015
  • @OscarAnazodo Какие ошибки вы получаете? Возможно ли, что ваша студенческая модель недействительна? есть ли еще обязательные поля? 14.12.2015

Ответы:


1

Если вы используете MVC5, это означает, что вы используете identity2. Поэтому лучше использовать это для получения сведений о пользователе. Наилучший подход заключается в следующем: добавьте следующий оператор using.

using Microsoft.AspNet.Identity;

Теперь вы можете получить больше методов из HttpContext.User.Identity.

var UserName = User.Identity.GetUserName();
var UserId = User.Identity.GetUserId();

Обратите внимание, что идентификатор обычно использует электронную почту в качестве имени пользователя. Но вы можете изменить его в любом случае.

14.12.2015
  • Пока у меня есть имя пользователя, как мне вставить его в мою таблицу учеников? И это должно быть сделано во время регистрации в рамках действия регистрации. 14.12.2015
  • в чем проблема добавить имя пользователя в студенческий стол? 14.12.2015
  • Новые материалы

    React on Rails
    Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

    Что такое гибкие методологии разработки программного обеспечения
    Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

    Ториго  — революция в игре Го
    Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

    Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
    Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

    Математика и интуиция - Часть 1
    У каждой математической формулы есть доказательство. Часто эти доказательства слишком сложно понять, поскольку многие из них основаны на индукции, некоторые - на очень сложных наблюдениях, а..

    Раскрытие возможностей НЛП: часть речевой маркировки и ее проблемы
    В сфере обработки естественного языка (NLP) маркировка частей речи (POS) выступает в качестве фундаментального метода, позволяющего компьютерам понимать и анализировать человеческий язык на..

    Под поверхностью: раскрытие деталей системы с помощью инструментов Linux CLI
    Чем больше вы изучаете Linux и продвигаетесь вперед, тем больше вам нужно проверять информацию о вашей системе. Эта информация может касаться аппаратного обеспечения, такого как процессор,..