Как войти в систему под именем пользователя и добавить его имя в базу данных? - PullRequest
0 голосов
/ 14 июня 2019

В моем приложении у меня есть Форма для зарегистрированных пользователей, и после заполнения анкеты пользователем я хочу добавить ответы с именем пользователя в базу данных.Я пишу метод для сохранения значений и некоторые проблемы с сохранением 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 Ответ

1 голос
/ 14 июня 2019

Вы должны указать имя пользователя, ответ и т. Д. Для модели:

модель:

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
...