如何将一个 aspx 的值传递给另一个 aspx 页


<form id="form1" runat="server">
<div>
    <asp:TextBox ID="txtFirstName" runat="server">
    </asp:TextBox>
    <asp:TextBox ID="txtLastName" runat="server">
    </asp:TextBox>
     <asp:Button ID="Button1" runat="server" Text="RedirectPage" PostBackUrl="~/TestAjaxControls.aspx?FirstName=txtFirstName&LastName=txtLastName"  />
</div>
</form>

我需要将名字和姓氏值访问到下一页

您可以使用 PreviousPage 属性。或将值保存到会话

上一页

要查找prevoius页面的控件,您可以使用FindControl函数

TextBox txtFirstName = Page.PreviousPage.FindControl("txtFirstName") as TextBox;

会期

将控件值保存到会话中:

Session["FirstName"] = txtFirstName.Text;

从任何页面,您都可以获取会话值:

string firstName = Session["FirstName"].ToString();

来自通信代码的 Properies:

public class Employee
{
    string _name;
public string Name
{
get
{
    // Return the actual name if it is not null.
    return this._name ?? string.Empty;
}
set
{
    // Set the employee name field.
    this._name = value;
}
}
}

或使用会话非常方便和简单的方法

或者,您可以在按钮OnClick上执行重定向,使用QueryString中的参数,就像您尝试的那样:

<asp:Button ID="Button1" runat="server" Text="RedirectPage" OnClick="Redirect_Click" />

和:

protected void Redirect_Click(object sender, EventArgs e)
{
    string firstN =txtFirstName.Text;
    string lastN =txtLastName.Text;
    string redirectUrl = String.Format("~/TestAjaxControls.aspx?FirstName={0}&LastName={1}", firstN, lastN);
    Response.Redirect(redirectUrl);
}

您可以将它们放在查询字符串中。

Response.Redirect("~/nextpage.aspx?firstName=" + txtFirstName.Text + "&lastName=" + txtLastName.Text);

您将需要添加验证。

我建议避免使用会话,因为对于这样的事情来说,这可能是矫枉过正,但是,如果您这样做,则必须正确清除会话。