Asp.net 重定向到同一页面后保留所有输入的值

Asp.net 重定向到同一页面后保留所有输入的值,asp.net,Asp.net,我有注册页面,其中包含许多文本框、复选框和日期选择器等,当勾选其中一个复选框时,它将重定向到子注册页面。点击子注册页面上的按钮后,它应该重定向到注册页面,我希望保留我已经输入的所有值。如果我使用会话,我必须写很多行代码。还有别的办法吗 如果要将用户导航到页面之外,您必须使用会话,这是无法避免的 可以不重定向用户,在同一页面上使用JavaScript隐藏和显示子注册元素 如果您必须导航离开,则必须使用会话。在这种情况下,为了减少所需的代码量,您可以开发一个自定义控件,该控件的值使用会话支持的属性。

我有注册页面,其中包含许多文本框、复选框和日期选择器等,当勾选其中一个复选框时,它将重定向到子注册页面。点击子注册页面上的按钮后,它应该重定向到注册页面,我希望保留我已经输入的所有值。如果我使用会话,我必须写很多行代码。还有别的办法吗

如果要将用户导航到页面之外,您必须使用会话,这是无法避免的

可以不重定向用户,在同一页面上使用JavaScript隐藏和显示子注册元素

如果您必须导航离开,则必须使用会话。在这种情况下,为了减少所需的代码量,您可以开发一个自定义控件,该控件的值使用会话支持的属性。例如:

然后,您可以重新使用此自定义控件替换所有文本框。您可能需要为所使用的每种类型(文本框、下拉列表等)使用自定义控件

以下是具有会话支持值的用户控件的示例实现:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SessionTextBox.ascx.cs" Inherits="WebForms_Tests.UserControls.SessionTextBox" %>

<asp:TextBox runat="server" ID="theTextBox"></asp:TextBox>

你可以把所有的东西都放在一个单独的分区里。一旦第一个发回隐藏并显示另一个,然后在第二个发回上再次切换。我已经使用上面答案中的代码开发了一个运行示例,您能将答案标记为已接受吗?PM我,如果你想让我给你发送完整的源代码。
public partial class SessionTextBox : System.Web.UI.UserControl
{
    protected string SessionValue
    {
        get
        {
            object temp = Session["sessionBackedControlValue:" + this.UniqueID];
            return temp == null ? string.Empty : temp as string;
        }
        set
        {
            Session["sessionBackedControlValue:" + this.UniqueID] = value;
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            SessionValue = theTextBox.Text;
        }
        else
        {
            theTextBox.Text = SessionValue;
        }
    }
}