別のアクション メソッドにリダイレクトしていて、新しいアクション メソッドでアクセスできるデータを渡したい場合は、ASP.MVC コントローラーの TempData プロパティを使用する必要があります。これは次のように使用します。
[HttpPost]
public ActionResult MyActionMethod(Order order)
{
// write your logic here to save the Order
TempData["message"] = "here is some message";
return RedirectToAction("Index");
}
TempData メンバーのデータは、リダイレクト後も保持されます。リダイレクトされたページでアクセス可能になり、その後削除されます。TempData のエントリを読み取ると、削除対象としてマークされます。
public ActionResult RedirectedMethod()
{
//Retrieve data from TempData. It will then be marked for deletion
var data = TempData["message"].ToString();
}
削除のマークを付けずに値を取得したい場合は、「Peek」メソッドを使用できます。
var data = TempData.Peek("message")
また、「Keep」メソッドを使用して、そうでなければ削除される値を手動で保持することもできます。
TempData.Keep("message")
TempData は TempDataDictionary 型です。
TempData はバックグラウンドで ASP.Net セッション状態を使用するため、TempData を使用している場合はセッション状態をオンにする必要があることに注意してください。
TempData の詳細については、こちらを参照してください。