这应该显示我在这里输入文本框的信息。
protected void btnDisplay_Click(object sender, EventArgs e)
{
string vacations = Session["Vacations"] as string;
string hobbies = Session["Hobbies"] as string;
string classes = Session["Classes"] as string;
lblDisplay.Text = "Your favorite vacations spots are: " + vacations;
lblDisplay.Text = "Your hobbies are: " + hobbies;
lblDisplay.Text = "Your IT Classes are: " + classes;
}
以下是我在其他页面中用来存储会话状态信息的基本代码。我的所有页面都是相同的,只有不同的名称。
protected void btnHome_Click(object sender, EventArgs e)
{
Session["Vacations"] = txtVacations.Text;
Response.Redirect("Default.aspx");
}
我已经研究了要做什么,而且根据我的研究,这应该有效。但它显然不起作用。当我运行页面并单击按钮时,我在前一页上输入文本框的信息不会被存储。这是为什么?我做错了什么?
谢谢。
修改
这是我的web.config文件
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
</system.web>
</configuration>
答案 0 :(得分:0)
您的web.config应该包含以下内容:
<sessionState timeout="20" mode="InProc" />
超时=会话在被放弃/删除之前的时间。如果这个太低,那么可能是事情消失的原因。 20分钟是IIS中会话的默认超时
模式=会话被保持的位置,无论是在内存中还是在sql状态服务器上等等。您可能想要InProc。
InProc =会话状态正在使用ASP.NET辅助进程。这就是我想要在这种情况下使用的东西。