データをTempData
またはSession
に保存し、を呼び出してから、またはRedirectToAction
から値を取得できます。TempData
Session
TempData
特別です。セッションにデータを保存します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を使用せず、代わりにセッションに保持してください。