首页 > 代码库 > Asp.net页面之间几种传值方法【示例】

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

1.Request.QueryString

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

Response.Redirect("QueryStringPage.aspx?Data=http://www.mamicode.com/" + 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即为传送过来的值
 

 

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