C# 返回上一页,文本框中仍有值

C# 返回上一页,文本框中仍有值,c#,asp.net,visual-studio-2008,C#,Asp.net,Visual Studio 2008,我有一个带有文本框的起始页,单击“下一步”按钮时,我使用缓存将文本框中输入的值发送到另一个页面 现在我有一个问题,当用户转到下一页广告决定再次返回时,他应该能够这样做,并且他在文本框中输入的值应该仍然存在 有没有办法做到这一点 我发送值的代码是: protected void Button4_Click(object sender, EventArgs e) { if (TextBox2.Text == "" || TextBox3.Text == "") { L

我有一个带有文本框的起始页,单击“下一步”按钮时,我使用缓存将文本框中输入的值发送到另一个页面

现在我有一个问题,当用户转到下一页广告决定再次返回时,他应该能够这样做,并且他在文本框中输入的值应该仍然存在

有没有办法做到这一点

我发送值的代码是:

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();
    }
}

缓存由所有用户共享。上述代码将导致用户之间共享信息。如果需要每用户临时存储,则应使用会话。除此之外,我可以提出两项建议:

  • 继续治疗,你的方法很好
  • 查看向导控件
  • 要恢复值,请在“简单控件”中执行以下操作:

    <asp:TextBox ID="txtName" runat="server" text='<%=Session["Name"] %>'></asp:TextBox>
    

    听起来您想利用在2.0版中添加到ASP.NET的跨页回发功能

    下面的URL应该提供一些指导


    假设你有两页,
    page1
    page2
    : 首先,您在
    page1
    上搜索并获得结果,然后单击链接并进入第二页

    我的建议是,当您单击
    page1
    上的超链接/按钮时,您可以将
    文本框
    字段值放入会话中,如

    Session["key"] = txtbox.Text;
    
    进入第2页后,您可以尝试在“返回”按钮操作中将会话设置为等于自身,以返回到
    page1

    Session["key"] = Session["key"].ToString();
    
    page2
    返回时插入代码,从会话中获取值并放入搜索表单的
    文本框中

    txtbox.Text = Session["key"].ToString();
    

    更糟糕的是,缓存中的项目被丢弃以节省内存,这是由框架自行决定的。即使我使用会话,如果用户单击“上一步”按钮,我如何在文本框中保留值。。。你能给我举一个使用会话的例子吗。。感谢与用户之间共享值相比,内存问题很小。现在查看上面的示例。谢谢大家,我使用了会话,而不是您建议的缓存。。Nissan Fan我尝试了你的代码,但是如果我把text=''放在文本框中,它会显示出来,而不是一个值。。我认为缺少一些语法。。谢谢