您可以将数据存储在TempData
or中Session
,调用RedirectToAction
,然后从TempData
orSession
再次检索值。
TempData
很特别。它将内容存储在 Session 中,但是,通过存储的数据TempData
仅保留用于当前请求和后续请求。之后,数据被丢弃。这听起来很适合您的需求,但如果您需要数据保留更长时间,只需使用 Session。
public class HomeController : Controller
{
public ActionResult Index()
{
var someData = TempData["SomeData"] as string; // can be anything, using a string as an example;
return View(someData);
}
}
public class DocumentsController : Controller
{
public ActionResult DoSomething()
{
TempData["SomeData"] = "Hello, world!";
return RedirectToAction("Index", "Home");
}
}
当您第一次访问时Home/Index
,"SomeData"
将丢失(null)。当您访问 时Documents/DoSomething
,它将设置"SomeData"
为一个字符串,然后将您重定向到Home/Index
. 此时,Index
将看到我们放置的字符串"SomeData"
,您可以在Index
视图中使用它。但是,在那之后,所有临时数据都将被清除。
因此,例如,如果用户Index
在重定向后多次刷新,则在刷新期间临时数据将丢失。如果这不可接受,则不要使用 TempData,而是将其保留在 Session 中。