Это ультра-упрощенная версия моей проблемы, но она подходит прямо к делу.
У меня есть эта модель
public int QuestionId { get; set; }
public string QuestionText { get; set; }
public string AnswerText { get; set; }
Теперь представьте, что я хочу изменить AnswerText на "бла-бла", прямо перед SaveChanges () в контроллере:
[HttpPost]
public ActionResult Create(Question question)
{
if (ModelState.IsValid)
{
question.AnswerText = "blah blah"
db.Questions.Add(question);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(question);
}
Это работает как ожидалось .
Теперь вместо публичная строка AnswerText {get; задавать; } Я хочу получить список ответов:
public List<string> AnswersText { get; set; }
И я хочу вручную добавить ответы непосредственно перед SaveChanges ():
[HttpPost]
public ActionResult Create(Question question)
{
if (ModelState.IsValid)
{
question.AnswersText = new List<string>();
question.AnswersText.Add("blah1");
question.AnswersText.Add("blah2");
question.AnswersText.Add("blah3");
db.Questions.Add(question);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(question);
}
То, что я получаю, странно: мой вопрос правильно добавлен в контекст, но список ответов всегда пуст. Я не знаю, что делать, мне кажется, что такая простая задача.
Спасибо за вашу помощь.