gpt4 book ai didi

ASP.NET TempData 即使在阅读后也不会被清除

转载 作者:行者123 更新时间:2023-12-04 19:03:04 28 4
gpt4 key购买 nike

我有一个类似于下面的 Controller 操作,TempData 由我的框架初始化。我注意到 TempData 在读取后不会清除该值,如操作“EmployeeUnderAge”中所示。

TempData 什么时候清除已经读取的数据?

public class HomeController : Controller
{
public ActionResult Index(int iD)
{
var employeeAge = (int)TempData["Age"];
RouteData.Values.Add("Age", employeeAge);
return RedirectToAction("EmployeeUnderAge");
}

public ActionResult EmployeeUnderAge(int employeeAge)
{
var stillInTempData = (employeeAge == ((int) TempData["Age"]));
return (stillInTempData) ? View("Index") : View("Error");
}
}

最佳答案

以下是使用临时数据时需要注意的一些关键点。

  • 对临时数据的读取访问不会立即从字典中删除项目,而只会标记删除。
  • TempData 不会总是删除已读取的项目。它仅在操作导致 HTTP 200 (OK) 状态代码(即:ViewResult/JsonResult/ContentResult 等)时删除该项目
  • 如果操作导致 HTTP 302(例如任何重定向操作),即使访问数据,数据也会保留在存储中,这就是我的问题。 TempData 显然是为将数据传递给不同的 Controller / Action 而设计的,因此在重定向期间不清除是合理的
  • 关于ASP.NET TempData 即使在阅读后也不会被清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32571599/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com