在ASP.NET MVC5中注册时将数据插入另一个表

在ASP.NET MVC5中注册时将数据插入另一个表,asp.net,asp.net-mvc,entity-framework,Asp.net,Asp.net Mvc,Entity Framework,我知道ASP.NET MVC创建了一个默认表“AspNetUser”,用于在注册期间存储用户信息。在注册过程中,如何获取诸如“用户名”之类的数据并将其存储在单独的表中 我试图获取用户提供的“用户名”,该用户名默认存储在“AspNetUser表”中,并在注册过程中存储在“Student表”中 注册操作 // POST: /Account/Register [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken]

我知道ASP.NET MVC创建了一个默认表“AspNetUser”,用于在注册期间存储用户信息。在注册过程中,如何获取诸如“用户名”之类的数据并将其存储在单独的表中

我试图获取用户提供的“用户名”,该用户名默认存储在“AspNetUser表”中,并在注册过程中存储在“Student表”中

注册操作

  // 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);
    }

如果您使用的是MVC5,则表示您使用的是identity2。因此,最好使用它来获取用户详细信息。最好的方法是这样做: 添加以下using语句

using Microsoft.AspNet.Identity;
现在可以从HttpContext.User.Identity获取更多方法

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

请注意,identity通常使用电子邮件作为用户名。但是你还是可以改变它。

你可能需要进一步说明为什么这对你不起作用。我的学生表中的“学生实体”没有被删除recognized@OscarAnazodo你犯了什么错误?您的学生模型是否可能无效?例如,是否有更多必填字段?当我有用户名时,如何将其插入我的“学生表”中?。这应该在注册操作中完成。在学生表中添加用户名有什么问题?
var UserName = User.Identity.GetUserName();
var UserId = User.Identity.GetUserId();