在我的应用程序中,我有针对登录用户的表单,在用户完成问卷调查后,我想将具有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
答案 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