好的..我有一个带文本框的开始页面我将文本框中输入的值发送到另一个页面,使用Cache点击下一个按钮。
现在我遇到一个问题,当用户进入下一页时,广告决定再次返回,他应该能够这样做,并且他在文本框中输入的值应该仍然存在。
有办法吗?
我发送值的代码是:
块引用
protected void Button4_Click(object sender,EventArgs e)
{
if (TextBox2.Text == "" || TextBox3.Text == "")
{
Label1.Text = ("*Please ensure all fields are entered");
Label1.Visible = true;
}
else
{
Cache["PolicyName"] = TextBox2.Text;
Cache["PolicyDesc"] = TextBox3.Text;
Response.Redirect("~/Addnewpolicy3.aspx");
}
}
我将在下一页收到此消息
protected void Page_Load(object sender,EventArgs e)
{
if (!IsPostBack)
{
string pn = Cache["PolicyName"].ToString();
string pd = Cache["PolicyDesc"].ToString();
string os = Cache["OperatingSystem"].ToString();
}
}
块引用
答案 0 :(得分:2)
答案 1 :(得分:1)
所有用户都共享缓存。上面的代码将导致用户之间共享信息。如果您想要每用户临时存储,则应使用会话。除此之外,我可以提出2条建议:
要使值恢复,请在控件中执行以下操作:
<asp:TextBox ID="txtName" runat="server" text='<%=Session["Name"] %>'></asp:TextBox>
答案 2 :(得分:0)
假装您有两个页面,page1
和page2
:
首先,您在page1
上搜索并获得结果,然后点击链接并输入第二页。
我的建议是,当您点击page1
上的超链接/按钮时,您可以将textbox
字段值放入会话
Session["key"] = txtbox.Text;
进入第二页后,您可以尝试在“后退”按钮操作中设置等于自身的会话,以便返回page1
。
Session["key"] = Session["key"].ToString();
从page2
返回时插入代码,从会话中获取值并将其放入搜索表单的textbox
txtbox.Text = Session["key"].ToString();