簡體   English   中英

如何登錄UserName並將其名稱添加到數據庫?

[英]How to get logged in UserName and add his name to database?

在我的應用程序中,我有針對登錄用戶的表單,在用戶完成問卷調查后,我想將具有用戶名的答案添加到數據庫中。 我正在編寫保存值的方法,並且在將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

您必須為模型設置用戶名,答案等:

模型:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM