asp.net MVC:TempData,一旦读取我需要重新保存吗?

时间:2010-01-20 13:11:48

标签: asp.net asp.net-mvc

我正在使用TempData存储网站的引荐来源并通过jquery我发出ajax调用来发送电子邮件...我使用tempdata来恢复原始引荐来源网址。

它在第一次读取时工作得很好但是第二次它是空的....我认为这是设计...所以我决定尝试viewdata但这是存储但是当通过控制器读取ajax调用它是空的..

有谁知道我的选择是什么?

这两行的语法

        TempData["referrer"] = referrer;  // WORKS great on first read and then is NULL
        ViewData["referrer"] = referrer; // IS STORED but on first read is NULL

任何帮助真的很感激

2 个答案:

答案 0 :(得分:2)

TempData仅在下一个请求中保留,正如您所见 - 当您执行类似重定向的操作时,它确实存在,并且希望确保下一个调用具有所需的数据。有关详细信息,请参阅此链接:

TempData is really RedirectData

请注意,链接表明您可能需要同时检查ViewData和TempData以获取密钥。

您可以考虑使用Session来存储整个用户会话的数据,或者考虑将您的信息存储在查询字符串或隐藏的表单字段中,而不是这两个工具。

答案 1 :(得分:0)

Session["referrer"] = referrer;