加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 09:55:35 所属栏目:asp.Net 来源:网络整理
导读:我有一个类似于下面的控制器动作,TempData由我的框架初始化.我注意到TempData在读取后不会清除值,如“EmployeeUnderAge”操作中所示. TempData何时清除已读取的数据? public class HomeController : Controller{ public ActionResult Index(int iD) { var e
我有一个类似于下面的控制器动作,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");
    }
}

解决方法

以下是使用Temp数据时需要注意的一些要点.

>对临时数据的读访问不会立即从字典中删除项目,而只会删除标记.> TempData不会始终删除已读取的项目.它仅在操作导致HTTP 200(OK)状态代码(即:ViewResult / JsonResult / ContentResult等)时删除该项目>如果导致HTTP 302的操作(例如任何重定向操作),即使访问了数据,数据也会保留在存储中,这就是我的问题. TempData显然是为将数据传递给不同的控制器/操作而设计的,因此在重定向期间不清除是合理的

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读