我想在我的论坛项目中向帖子添加帖子,但为了这样做,我需要传递一个带有线程ID的参数,所以在创建帖子之后它会将我重定向回那个特定的线程,但问题是我有不知道如何传递该参数......
这是我的Create()代码:
// GET: /Posts/Create
public ActionResult Create(int id)
{
ViewBag.ThreadId = new SelectList(db.Albums, "ThreadId", "Title");
ViewBag.IdOfThread = id;
return View();
}
//
// POST: /Posts/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Posts posts)
{
if (ModelState.IsValid)
{
db.Posts.Add(posts);
db.SaveChanges();
return RedirectToAction("Index", new { **id = 5** });
}
ViewBag.ThreadId = new SelectList(db.Albums, "ThreadId", "Title", posts.ThreadId);
//ViewBag.IdOfThread = id;
return View(posts);
}
当我强烈输入数字id = 5
时,它按预期工作,那么如何让ActionResult Create(Posts posts)
从创建视图中查看我的ViewBox?或者,如果不使用ViewBox,可能有更好的方法吗?
答案 0 :(得分:0)
当您向实体添加模型并调用SaveChanges()
时,通过EF的荣耀,它会自动将ID重新放入模型中。
if (ModelState.IsValid)
{
db.Posts.Add(posts);
db.SaveChanges();
// Replace Id with whatever your auto increment PK is.
return RedirectToAction("Index", new { id = posts.Id });
}