如何登录UserName并将其名称添加到数据库?

时间:2019-06-14 07:25:07

标签: c# asp.net-mvc tsql asp.net-core asp.net-identity

在我的应用程序中,我有针对登录用户的表单,在用户完成问卷调查后,我想将具有UserName的答案添加到数据库中。 我正在编写保存值的方法,并且在将UserName保存到我的数据库表列时遇到一些麻烦。保存该用户名的外观应如何正确?

模型方法

public string Answer1 { get; set; }
public string Answer2 { get; set; }

 public void Save()
    {

        var db2 = new DBEntities();
        db2.Questionnaire.Add(new Questionnaire() {
            Answer1 = Answer1,
            Answer2 = Answer2,
            //ETC...

        });
        db2.SaveChanges();
    }

控制器

    public ActionResult Form()
    {
        var model = new FormViewModel();
        return View(model);
    }

    [HttpPost]
    public ActionResult Form(FormViewModel model)
    {
        if (ModelState.IsValid)
        {
            var now = DateTime.Now;
            model.CreationDate = now;

            var usr = User.Identity.GetUserName();//getting logged UserName
            db2.Questionnaire.Add(model.usr);//this is incorrect attempt to save

            model.Save(); //saving method
            return RedirectToAction("Index");
        }
        return View(model);
    }

我的数据库表看起来像

CREATE TABLE [dbo].[Questionnaire](
[Id] [int] IDENTITY(1,1) NOT NULL,
[CreationDate] [datetime] NOT NULL,
[UserName] [nvarchar](50) NOT NULL,
[Answer1] [nvarchar](50) NULL,
[Answer2] [nvarchar](512) NULL,
//ETC..
PRIMARY KEY CLUSTERED

1 个答案:

答案 0 :(得分:1)

您必须为模型设置用户名,答案等

型号:

public string UserName { get; set; }
public string Answer1 { get; set; }
public string Answer2 { get; set; }

 public void Save()
 {
    var db2 = new DBEntities();
    db2.Questionnaire.Add(new Questionnaire() {
      Answer1 = Answer1,
      Answer2 = Answer2,
      UserName = UserName,
      //ETC...
        });
        db2.SaveChanges();
    }

控制器

var usr = User.Identity.GetUserName();//getting logged UserName
model.Username = usr;
model.Save(); //saving method