Asp.net页面之间几种传值方法【示例】

1.Request.QueryString

在传值的页面(aspx.cs页面):

Response.Redirect("QueryStringPage.aspx?Data=" + Server.UrlEncode(DataToSendTextBox.Text));

在接收值的页面(.net前端页面):

<%=Server.UrlDecode(Request.QueryString["Data"]) %>

2.HttpPost

在传值的页面(aspx页面):

    <form id="form1" runat="server">
    <div>
        <h1>Source Page</h1>
        Data to send: <asp:TextBox ID="DataToSendTextBox" runat="server" Text="Hello World!"></asp:TextBox><br /><br />
        <asp:Button ID="HttpPostButton" runat="server" Text="Use HttpPost" PostBackUrl="~/HttpPostPage.aspx"/><br /><br />
    </div>
    </form>

在接收的页面(aspx页面):

<%=Request.Form["DataToSendTextBox"] %>

在接收的页面(aspx.cs页面):

System.Text.StringBuilder displayValues =
                new System.Text.StringBuilder();
            System.Collections.Specialized.NameValueCollection
                postedValues = Request.Form;
            String nextKey;
            for (int i = 0; i < postedValues.AllKeys.Length; i++)
            {
                nextKey = postedValues.AllKeys[i];
                if (nextKey.Substring(0, 2) != "__")
                {
                    displayValues.Append("<br>");
                    displayValues.Append(nextKey);
                    displayValues.Append(" = ");
                    displayValues.Append(postedValues[i]);
                }
            }
            ReceivedDataLabel.Text = displayValues.ToString();

上述代码中,postedValues[i]为获取到的所接收的值

3.Session State

传值页面(aspx.cs页面):

Session["Data"] = DataToSendTextBox.Text;
Response.Redirect("SessionStatePage.aspx");

接收值页面(aspx页面):

<%=Session["Data"] %>

4.Public Properties

传值页面(aspx.cs页面):

public string DataToSend
        {
            get
            {
                return DataToSendTextBox.Text;
            }
        }
Server.Transfer("PublicPropertiesPage.aspx");

接收值页面(aspx页面):
<%@ PreviousPageType VirtualPath="~/Default.aspx" %>
<%=PreviousPage.DataToSend %>

5.Control Info
传值页面(aspx.cs页面)
        public string DataToSend
        {
            get
            {
                return DataToSendTextBox.Text;
            }
        }
 
Server.Transfer("ControlInfoPage.aspx");

接收值的页面(aspx页面)
<%@ PreviousPageType VirtualPath="~/Default.aspx" %>
 <asp:Label ID="DataReceivedLabel" runat="server" Text="Label"></asp:Label>

接收值的页面(aspx.cs页面)
protected void Page_Load(object sender, EventArgs e)
        {
            var textbox = PreviousPage.FindControl("DataToSendTextbox") as TextBox;
            if (textbox != null)
            {
                DataReceivedLabel.Text = textbox.Text;
            }
        }
上述代码中,textbox.Text即为传送过来的值
 
原文地址:https://www.cnblogs.com/Wbely/p/4026498.html