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

Nat*_*ins 0 c# asp.net-mvc-3

我的控制器中有两个操作结果.概述和关于.

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) });
}
Run Code Online (Sandbox Code Playgroud)

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

Bra*_*don 5

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

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) });
}
Run Code Online (Sandbox Code Playgroud)

  • MVC中的TempData实际上会持续存在直到被检索到.由于FYI Tempdata实际上存储在用户SessionState中,因此它更像SessionData而不是ViewData.http://msdn.microsoft.com/en-us/library/dd394711.aspx (2认同)