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

2023-11-23

我有一个类似于下面的控制器操作,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");
    }
}

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

  1. 对临时数据的读取访问不会立即从字典中删除项目,而只是标记为删除。

  2. TempData 并不总是删除已读取的项目。仅当操作导致 HTTP 200(OK)状态代码(即:ViewResult/JsonResult/ContentResult 等)时,它才会删除该项目

  3. 如果发生导致 HTTP 302 的操作(例如任何重定向操作),即使访问数据,数据也会保留在存储中,这就是我的问题中的情况。 TempData 显然是为了将数据传递到不同的控制器/操作而设计的,因此在重定向期间不清除是合理的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET TempData 即使在读取后也不会被清除 的相关文章

随机推荐

  • 如何限制 Chrome 中的并发(并行)浏览器请求?

    背景 我注意到几乎所有代理提供商都有 最大线程数 允许 根据我的理解 这意味着一次并发 并行浏览器请求的最大数量 由于现代网站可以有许多并行请求 因此如何在 Chrome 中限制并行请求 全局范围内整个浏览器 不仅针对每个主机 服务器 而且
  • C++ 排序跟踪索引[重复]

    这个问题在这里已经有答案了 您是否有一些有效的例程来返回带有数组中排序元素索引的数组 我认为使用 stl 存在一些方便的方法vector 您是否已经在不使用 stl 的情况下实现了高效的算法 或者您是否有伪代码或 C 代码的参考 使用 C
  • 工具栏和选项卡之间有一条线

    如何删除工具栏和tablayout之间的深线 我在google上搜索有人说 向工具栏和tablayout添加一些标高 我做了但它不起作用 从工具栏和tablyout中删除标高后 它也不起作用 请帮帮我 tablayout xml
  • Clojure 中向量和列表上 conj 的行为差异

    我是 clojure 的新手 最初我正在经历Clojure org and 作弊簿 我想知道不同行为的确切原因是什么conj在列表和矢量上 conj 1 2 3 4 1 2 3 4 conj list 3 2 1 4 4 3 2 1 当我将
  • 为什么在 PHP 中将整数视为数组 ($int[$index]) 不会引发任何错误? [复制]

    这个问题在这里已经有答案了 这只是出于好奇而提出的一个简单问题 我花了一整天的时间调试我的 PHP 代码 发现问题是由于将整数视为数组造成的 x int index this returns null but no error at all
  • 使用 PHP 连接到远程 MySQL 服务器

    我正在尝试使用以下代码从本地计算机虚拟主机连接到远程 MySQL 服务器 conn mysql connect dbhost dbuser dbpass or die mysql error mysql select db dbname c
  • 在Android中对base64字符串中的位图对象进行编码和解码

    我想要编码和解码Bitmap字符串中的对象base64 我使用Android API10 我尝试过使用这种形式的方法来编码 但没有成功Bitmap public static String encodeTobase64 Bitmap ima
  • 覆盖嵌套路由中的参数

    我希望路线的命名约定保持一致 默认参数是 id对于任何资源 但是 如果其中嵌套了另一个资源 则父资源的参数将更改为 parent id 我的路由看起来像 resources users do resources projects do re
  • Python类继承多处理,访问类成员时遇到问题

    简而言之 假设我有以下内容 import multiprocessing class Worker multiprocessing Process def init self multiprocessing Process init sel
  • 将 SELECT-OPTIONS 文本右对齐

    这些是我正在开发的表单的屏幕截图 我想设计表单中的选择框 使选项中的文本右对齐 并且在选择选项后 所显示的所选文本也应显示如下图所示 HTML 代码
  • 在哪里可以找到 WPF DataGrid 或一般 WPF 控件的 XAML 模板? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想修改控制模板DataGrid 4 0版本 但我不确定现有的模板是什么样的 有谁知道它是什么或者我在哪里可以找到它 一般来说 对于某些WPF控件
  • 设置 MS-Access DB 以进行多用户访问

    我们正在考虑 增长 一个小型 MS Access DB 其中包含一些表 表单和多个用户的查询 使用不同的后端是另一种更长期的选择 不幸的是目前不可接受 大多数用户将是只读的 但会有一些 当前是一两个 用户必须能够进行更改 而只读用户也正在使
  • 如何在flutter中制作依赖的多级DropDown?

    我试图使依赖的多级下拉列表首先包含州列表 第二个包含城市列表 所有数据都是从 API 获取的 最初 我加载州下拉列表 当我选择州时 如果我选择城市 则加载该州的城市 成功选择城市 但当我更改州值时 会发生错误 如果第一个下拉列表中发生更改
  • tkinter.TclError:字符 U+1f449 超出 Tcl 允许的范围 (U+0000-U+FFFF)

    我正在尝试使用 tweepy 在 Tkinter 窗口上显示我的 Twitter 时间线 这是代码 import tweepy import tkinter consumer key xxxxxxxxxxxxxx consumer sec
  • 使用 Jupyter 中的浏览按钮上传文件并使用/保存它们

    我碰到这个片段用于在 Jupyter 中上传文件 但是我不知道如何将此文件保存在执行代码的计算机上 也不知道如何显示上传文件的前 5 行 基本上我正在寻找正确的命令来访问文件上传后 import io from IPython displa
  • 无法从 Azure 网站访问 Azure DB 服务器

    我使用 Visual Studio 2013 Web Express 创建了一个 MVC Web 应用程序 我已在 Azure 中为我的计算机启用了防火墙规则 并且我可以从本地计算机连接并远程调试我的网站 我让用户 SQL Server 对
  • 在 .NET C# 中以编程方式将 SVG 嵌入 PDF [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有谁知道如何使用 C 创建 pdf 并在该 PDF 中添加 SVG 文档 itextsharp 做不到 感谢这个库 http svg codeple
  • 如何按日期时间字段中的时间进行过滤?

    在模型中 输入 的是日期时间字段 我想查询数据以查找中午 开始时间 和下午 5 00 结束时间 之间进行的所有条目 selected Entry objects filter entered gte start time entered l
  • 错误:原因:无效的流标头:android studio 2.3.1 中的000900D9

    我正在使用 android studio 2 3 1 昨天工作正常但现在它给我一个错误错误 原因 无效的流标头 000900D9此消息抛出自消息 Gradle 同步对话框 以下是我为解决此问题所做的步骤 但对我来说没有任何作用 1 使缓存无
  • ASP.NET TempData 即使在读取后也不会被清除

    我有一个类似于下面的控制器操作 TempData 由我的框架初始化 我注意到 一旦读取该值 TempData 就不会清除该值 如操作 EmployeeUnderAge 中所示 TempData什么时候清除已经读取的数据 public cla