当我试图将一个自定义对象从一个网站的一个页面传递到另一个页面时,我遇到了一个令人沮丧的问题。当我尝试在第2页上使用session中的对象时,它是空的。我相信我的语法是正确的,因为当我从我的较大的解决方案中取出代码并在它自己的解决方案上运行它时,它工作得很好。
我想知道在visual studio、aspx文件、项目属性中是否有任何设置可能会导致此会话对象无法工作?
我使用的简单语法是;在page1上
Person p = new Person;
p.name = "john";
p.secondName = "doe";
Session["person"] = p.
Response.Redirect("Page2.aspx")
页面加载方法上的第2页
Person p = (person)Session["person"]
textbox1.Text = p.name;
textbox2.Text = p.Secondname;
正如我所说的,这段代码本身工作得很好,但不能作为我更大的works项目的一部分。任何关于为什么这可能不起作用的想法都将不胜感激。
发布于 2012-12-17 01:41:25
有三种可能的选择。
第一个问题是,在大型项目中,会话状态是禁用的。请访问Turn Off ASP Session State in Active Server Pages and IIS了解更多详细信息。
第二种选择是异常发生在应用程序内部的某个地方(单独的线程),从而导致应用程序重启和会话状态松散。您可以通过连接到Global.asax内部的应用程序错误来检查这一点,如下所示:
void Application_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
}
最后一个选项是会话“person”值在其他模块或页面中被更改。
https://stackoverflow.com/questions/13903747
复制相似问题