2010-04-12 77 views
0

我已将2003年的Web应用程序项目转换为2005年。2003年的所有工作都正常,但2005年转换后的Web应用程序项目存在一些问题,问题在于会话值,最初会话值工作罚款(第一次),但如果页面第二次加载会话值变空。页面加载中丢失的会话值

在第一页的会话值

被设置在第二页的会话值被接收,然后我点击按钮的页面现在会话值是空会重新加载..

请给我一些答案或链接指。

+0

我需要它请给我一些想法 – user314399 2010-04-12 10:19:15

+0

尝试发布一些代码?也许你正在覆盖代码中的价值? – 2010-04-12 10:20:18

回答

0

检查您的应用程序是否不更改文件夹结构中的任何内容,如创建新文件或文件夹。这通常会导致应用程序被重置,从而导致会话信息丢失。特别是一些特殊的文件夹和文件,如App_Code文件夹和Web.Config,会在修改后立即重置应用程序。

如果情况并非如此,那么它可能是一个代码逻辑问题。尝试重构会话变量的读取/写入使用属性:

private string MySessionVar { 
    get { return (string)Session["MySessionVar"]; } 
    set { Session["MySessionVar"] = value; } 
} 

然后断点添加到getter和setter和运行代码来检查什么引起的会话变量被覆盖。如果你使用它们,一定要检查usercontrols。

此外,如果该变量仅用于当前页面,则可以考虑使用Viewstate变量。