如果您正在重定向到另一个操作方法并且您想要传递可以在新操作方法中访问的数据,您应该使用 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")
此外,您可以手动保留一个值,否则将使用“保持”方法删除该值:
TempData.Keep("message")
TempData 属于 TempDataDictionary类型。
请注意,TempData 在后台使用 ASP.Net 会话状态,因此如果您使用的是 TempData,则必须打开会话状态。
有关 TempData 的更多信息,请参见此处。