问题标签 [tempdata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc-3 - 使用 ASP MVC TempData 向用户显示消息时出现问题
我正在使用 TempData 向用户显示一条消息。我在 TempData 中放入了一个字符串,然后我读取了该字符串,如果它不为空,则显示一个包含该消息的 DIV。
一切正常,如果用户刷新页面,则不会显示消息(这就是我想要的)。问题是,如果用户导航到其他页面,然后在浏览器中按下后退按钮,则消息会再次显示,我不希望这样。
我能做些什么来避免这种行为?
谢谢。
这是我用来读取 TempData (Razor + VB) 的代码。有一个 DIV #commonMessage,使用此代码,我将字符串放在 div 中并显示它。正如我之前所说,它正在工作,但唯一的问题是如果用户在浏览器中单击返回,TempData 仍然存在。
编辑:似乎 TempData 被捕获,因为如果我为显示消息的操作禁用缓存(使用属性System.Web.Mvc.OutputCache(NoStore:=True, Duration:=0, VaryByParam:="*")
),问题就会消失。但最好我能找到一种不涉及禁用缓存的方法......
要求编辑:我在 ASP 方面很新,所以我试图澄清我正在尝试做的事情。当用户执行操作(例如,编辑客户端)时,我将客户端重定向到客户端列表页面,并显示一条消息告诉用户“客户端数据已成功更新”。我正在尝试以一种使消息只显示一次的方式来做到这一点。也许 TempData 不是正确的方法(我不知道,因为我还在学习),但目标是只向用户显示一次消息(无论用户是否刷新或用户去其他页面,然后在浏览器中按回)...使用 TempData 或使用更适合我们目的的东西。
c# - ASP.NET MVC:重新分配 TempData
在控制器操作中,我从 TempData 变量中的重定向接收变量
由于我需要为另一个调用保留该数据,因此我尝试在返回视图之前重新分配它。
我立即从呈现的页面将 POST 请求提交回 ChangePassword,但这次 TempData["myVariable"] 为空。也许我在做一些愚蠢的事情,但是如何获得想要的结果?我不想使用 Session 变量(它会持续更长时间,我将努力确保手动清除该变量以防止污染 Session 变量)。我可以通过表单(隐藏变量)重新发布它,但我更愿意将变量仅保留在服务器端。
c# - c# TempData equivalent in php
I know I can explicitly set and unset a Session manually but I believe this is worth to ask. In c#, there is a dictionary called TempData which stores data until the first request. In other words, when TempData is called, it is automatically unset. For a better understanding here is an example:
Controller1.cs:
Model1.cs:
So basically, this is just something like a session for 1 use only. Again, I know that I can set and unset explicitly in php, but still, does php has a function like this one?
c# - 临时数据未清除
我正在开发一个 ASP.NET MVC 3 Web 应用程序,在用户未登录的情况下,我使用 TempData 来存储模型对象。
这是流程:
- 使用提交表单。
- 代码(特殊操作过滤器)将模型添加到 TempData ,重定向到登录页面。
- 用户重定向回 GET 操作,该操作读取 TempData 并直接调用 POST 操作
在第 3 步之后,我会认为 TempData 会被清除?
这是代码:
我发现这篇文章指出:
- 如果项目已被标记为删除,则仅在请求结束时从 TempData 中删除项目。
- 项目仅在阅读时被标记为删除。
- 通过调用 TempData.Keep(key) 可以取消标记项目。
- RedirectResult 和 RedirectToRouteResult 总是调用 TempData.Keep()。
那么通过阅读它TempData["xxx"]
不是“阅读”,因此应该将它们标记为删除?
最后一个让我有点担心——因为我在 POST (PRG) 之后进行了重定向。但这无法避免。
有没有办法我可以说“放弃这个项目”。临时数据。删除?还是我做错了?
asp.net-mvc - 使用 TempData 的问题
我正在使用 TempData 为从 ChildAction 呈现的表单保留 ModelState 错误。该表单允许用户在博客文章上发表评论。如果 ModelState 无效,则将错误复制到 TempData,然后我重定向到我的ShowPost
操作,该操作通过 ChildAction 显示评论表单,并包含验证错误。
我担心的是,我实际上在将 ModelState 错误保存到 TempData 和在 ChildAction 中重新显示它们之间进行了两次重定向。这是因为在我的ShowPost
操作中,我还在检查是否存在与当前帖子匹配的有效 slug,然后如果它丢失/不正确,则重定向以包含该 slug。这意味着如果用户发表评论,他们会发布到:
这将重定向到:
然后重定向到:
在显示评论错误之前。这在我的测试服务器上对我来说工作正常,但是我会在第二次重定向时遇到任何特殊问题吗?我问是因为我读过的帖子/问题表明 TempData 需要在重定向后直接使用。如果不是,数据可能会在请求之间丢失,我想知道我的第二次重定向是否会导致这种情况。
asp.net-mvc-3 - 为什么 TempData[] 不适用于 IE
在我的 MVC3 项目中,有很多 TempData[] 用于在操作之间传递数据。当我使用 Chrome 时,它非常完美。但在 IE 中,我无法获取 TempData[] 项的值。如果有人知道问题出在哪里,我该如何解决?`
`
asp.net-mvc-2 - TempData 和 ViewData 死得很快
有没有办法可以长时间存储变量?我的用户将让他们的窗口长时间打开(最多几 (3) 小时)。如果他们这样做,那么这些值就有可能变为空。如果正确,ViewData
则在加载视图后立即变为 null。我会怎么做?
asp.net-mvc-3 - TempData 有效,但被一个请求延迟
我正在使用 TempData 在 Post 后通过 Redirect 携带消息。控制器设置临时数据,如下所示:
在 _Layout.cshtml 中,我有以下片段:
我现在的问题是,重定向后,没有显示消息。但是,在重定向之后的请求(刷新或任何其他页面)上,将显示该消息。显示后,它会按预期从会话中删除。
如何让我的 TempData 显示在我重定向到的页面上?
asp.net-mvc - TempData:安全吗?
我使用 是TempData
为了在使用RedirectToAction
. 它工作正常,但我有一种唠叨的感觉,它可能不是正确的做法。我真的尽量避免使用 Session 数据,而且我读过它TempData
使用 Session。使用安全吗?在负载平衡环境中使用它可能会出现问题吗?
琐事问题:“它安全吗?”——给电影命名。
asp.net-mvc - asp.net mvc - 检测页面刷新
我知道 StackOverflow 上关于这个问题的类似问题,但没有一个解决了我的问题,所以我正在创建一个新问题。
正如标题所说,我想检测用户何时刷新页面。我有一个页面,我在其中保存了一些有关用户在其上所做操作的日志信息(例如添加、删除或编辑项目)。此日志只能在用户离开页面时保存,不能通过刷新来保存。
我尝试了下面的示例来检测它是刷新还是新请求:
考虑到TempData
它应该在我的下一步行动中过期。但是,由于某种原因,它在整个应用程序中仍然存在。根据这个博客,它应该在我随后的请求中过期(除非我不明白)。即使我从我的应用程序中注销并再次登录,我的 TempData 仍然存在。
我一直在考虑使用 javascript 函数onbeforeunload
对某些操作进行 AJAX 调用,但我不得不再次依赖 TempData 或以某种方式保留此刷新信息。有小费吗?