我正在使用ASP.NET MVC 3 Web应用程序,在用户未登录的情况下,我使用TempData存储模型对象。
流程如下:
步骤3之后,我会认为TempData将被清除?
这是代码:
[HttpGet]
public ActionResult Foo()
{
var prefilled = TempData["xxxx"] as MyModel;
if (prefilled != null)
{
return Foo(prefilled);
}
}
[HttpPost]
[StatefulAuthorize] // handles the tempdata storage and redirect to logon page
public ActionResult Foo(MyModel model)
{
// saves to db.. etc
}
我发现this article指出:
那么,通过使用
TempData["xxx"]
进行读取就不是“读取”了,因此应该标记它们以进行删除吗?最后一个让我有些担心-因为我在POST(P-R-G)之后进行了重定向。但这是无法避免的。
有没有办法我可以说“放弃这个项目”。 TempData.Remove吗?还是我做错了吗?
最佳答案
在阅读后立即添加TempData.Remove
进行了修复。
对此并不十分满意。我以为TempData
的全部意思是我不必要做这件事。
也可以直接使用Session。
关于c# - TempData未被清除,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7630678/