Так что я только начал использовать ASP.NET MVC, и он мне действительно нравится, за исключением того, что у меня, кажется, есть странная ловкость, чтобы встречаться с самыми странными ошибками.Я делаю простое приложение для ведения блога для себя.У меня есть две простые модели: post
и comment
.У меня есть частичное представление для создания комментария, который встроен в подробное представление для каждого сообщения.Когда я отправляю форму для обновления комментария, она переходит к действию создания моего CommentsController, которое выглядит как ...
[HttpPost]
public ActionResult Create(comment comment)
{
comment.date = DateTime.Now;
if (ModelState.IsValid)
{
post p = db.posts.Find(comment.post); //I've verified that comment.post is coming in
if (p.comments == null) p.comments = new List<comment>();
p.comments.Add(comment);
db.Entry(p).State = EntityState.Modified; //I'm using this line since that's how its done in the edit actionmethod of the BlogController. I was just updating db.posts.Find(... manually, but that wasn't workign either.
db.comments.Add(comment);
db.SaveChanges();
return RedirectToAction("Details", "Blog", new { id = comment.post });
}
return PartialView(comment);
}
Проблема в том, что хотя комментарий добавляется в базу данных просто замечательно, постне обновляетКогда я проверяю p
непосредственно перед сохранением изменений, он обновляется, но, по-видимому, он фактически никогда не фиксируется в базе данных, поскольку, когда я перенаправляю в Детали, этих комментариев там нет.Что-то явно не так с моим кодом?Я пропускаю некоторые базовые основы .NET или MVC?Дайте мне знать, если мне нужно предоставить больше кода или контекста.
Интересное примечание: несмотря ни на что, post.comments
всегда кажется нулевым.Я установил его в пустой список при создании сообщения, но, похоже, он все равно возвращается в ноль.Не уверен, если это просто результат попытки сохранить пустой список или это связано с моей проблемой, хотя.Опять же, дай мне знать, и я воткну здесь все, что нужно.
Спасибо!