[英]ASP.NET MVC: reassign TempData
在控制器操作中,我从TempData变量中的重定向接收到一个变量
public ActionResult ChangePassword()
{
string t = (string)TempData["myVariable"]; // works ok when coming from the redirect
[..]
}
由于我需要为另一个调用保留该数据,因此我尝试在返回视图之前重新分配它。
public ActionResult ChangePassword()
{
string t = (string)TempData["myVariable"];
[..]
TempData["myVariable"] = TempData["myVariable"];
return View();
}
我立即从呈现的页面向ChangePassword提交了POST请求,但是这次TempData [“ myVariable”]为null。 也许我在做一些愚蠢的事情,但是如何获得想要的结果呢? 我不想使用Session变量(它将持续更长的时间,并且我将手动确保清除该变量以防止污染Session变量)。 我可以通过表单(一个隐藏的变量)将其重新发布,但我更希望将变量保留在服务器端。
我认为您正在寻找TempData.Keep()
TempData仅在当前请求的上下文中保留。 如果您要向客户端返回内容,然后客户端回发,则不能使用它。 您的选择是非常标准的,基本上只按照您的描述进行:
就个人而言,我将与会话提供者一起使用,或者尝试避免将内容与立即回发的内容一起全部返回给客户端,如果可能的话...
如果myVariable不是关键的信息安全性,则可以将其保留到“隐藏”字段(更改视图)并将其发布到下一个操作请求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.