MVC3控制器操作结果’记住’传入的ID

我的Controller中有两个操作结果。 概述和关于。

public ActionResult Overview(int id) { return View(new OverviewModel() { Project = db.People.Find(id) }); } public ActionResult About(int id) { return View(new AboutModel() { Project = db.People.Find(id) }); } 

我想记住传递给Overview的id,并在About上使用它作为默认值。 当用户将标签从Overview切换到About时,我不知道如何保持此Id不变。

您可以尝试将id存储在TempData中。 也许是这样的(未经测试)

 public ActionResult Overview(int id) { TempData["YourId"] = id; return View(new OverviewModel() { Project = db.People.Find(id) }); } public ActionResult About(int? id) { id = id ?? int.Parse(TempData["YourId"].ToString()); return View(new AboutModel() { Project = db.People.Find(id) }); } 

如果此数据不敏感,您还可以使用隐藏的html属性。 它为我们创造了奇迹,它为我们节省了大量的处理能力。