C# 重定向另一页时母版页中的文本框被清除

C# 重定向另一页时母版页中的文本框被清除,c#,asp.net,master-pages,C#,Asp.net,Master Pages,我有这样一个母版页: public partial class Site1 : System.Web.UI.MasterPage { public string myText { get { return TextBox1.Text; } set { TextBox1.Text = value; } } } <%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master"

我有这样一个母版页:

public partial class Site1 : System.Web.UI.MasterPage
{
    public string myText
    {
        get { return TextBox1.Text; }
        set { TextBox1.Text = value; }
    }
}
<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true"      CodeBehind="Default.aspx.cs" Inherits="Project1.Default" %>
<%@ MasterType virtualpath="~/Site1.Master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:TextBox ID="testTextBox" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="OK" OnClick="Button1_Click" />

</asp:Content>
protected void Button1_Click(object sender, EventArgs e)
{
    this.Master.myText = testTextBox.Text;
    Response.Redirect("~/Page2.aspx");
}
站点1.主站点:

@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="Project1.Site1" %>

<!DOCTYPE html>

<html  xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

           <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

           </asp:ContentPlaceHolder>

    </div>
    </form>
</body>
</html>
我的问题在最后一行,当我转到Page2.aspx myText清除!并且不显示在Page2.aspx中。
我该怎么办?

您的文本框1。当加载您网站的任何页面时,文本将被清除。。。 如果要在所有网站页面中使用该值,请尝试将其存储在会话变量中


请参见此示例=>

您有多种可能性:

1)将其附加到下一个url

添加一个参数,如下面的示例中所示,例如
val
,其中存储文本框的文本

protected void Button1_Click(object sender, EventArgs e)
{
    this.Master.myText = testTextBox.Text;
    Response.Redirect("~/Page2.aspx?val=" + testTextBox.Text);
}
然后,您可以在母版页中获得该值,如下所示:

private string _Val {
    get {
        return Request["val"] != null ? Request["val"].ToString() : "";
    }
}
然后,您可以将属性附加到文本框中,如:

this.myTextBox.Text = _Val;
this.myTextBox.Text = _Val;
2)将其存储在会话中

创建会话对象

Session["ValText"] = testTextBox.Text;
使用以下属性获取母版页中会话的值:

private string _Val {
    get {
        return Session["ValText"] != null ? (string)Session["ValText"] : "";
    }
}
然后,您可以将属性附加到文本框中,如:

this.myTextBox.Text = _Val;
this.myTextBox.Text = _Val;

您可以将其添加为url参数,如
~/Page2.aspx?val=textBoxValue
“我该怎么办?”-将其保存在某个地方,以便Page2.aspx可以获取它。选项包括会话、Cookies、附加到Page2.aspx URL的查询字符串。我访问了所有受影响的母版页!即使在第三页、第四页,。。。没办法这么做??