我试着在MVC中使用会话状态,整个晚上我都被卡住了!我意识到在MVC中应该谨慎地使用会话状态-但我确定我想在这一个页面上使用它-所以我会更喜欢解决方案而不是意见。
基本上,我有一个带有验证码图像的联系人表单。当页面加载时,我希望将会话设置为CAPTCH图像(动态生成的图像)中使用的字符。我有一个‘新图像’的链接,异步创建一个新的代码,设置会话和动态加载到屏幕上的新图像。
只要页面不加载或重新加载,会话就会一直保持设置。我需要能够根据会话中的代码验证用户输入(这应该反映向用户显示的内容),但是会话是空的。
如果我在图像上执行AJAX重载,即异步设置会话-会话是在我执行post时设置的!!
到底怎么回事?
我需要能够持久化会话的值-- arrrhhhh!
我有一个基本控制器:
public new HttpContextBase HttpContext
{
get
{
HttpContextWrapper context = new HttpContextWrapper(System.Web.HttpContext.Current);
return (HttpContextBase)context;
}
} 在控制器中,我有:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Contact(ContactForm c, string button)
{
string sessCaptcha = HttpContext.Session["CAPTCHA_Contact"] == null ? "" : HttpContext.Session["CAPTCHA_Contact"].ToString();
}有什么想法?上面有樱桃的漂亮的pls :)
谢谢!
发布于 2011-03-07 09:22:46
您可能需要研究一下如何使用TempData对象
http://blog.donnfelker.com/2010/02/26/aspnet-mvc2-tempdata-now-persists/
https://stackoverflow.com/questions/5213531
复制相似问题