2

我正在尝试从我的主 asp 页面中检索文本框值。我要求用户在各自的文本框中输入他的姓名和姓氏。然后我单击一个提交按钮,该按钮将我带到另一个名为 DefaultPage.aspx 的网页......该按钮确实将我带到了新页面,但文本框值不会发送或显示在新页面上。

这是我的代码:

按钮的 ASP 代码:

asp:Button ID="Submit" runat="server" Text="Button" OnClick="Submit_Click"

这是我的主页的代码:

protected void Submit_Click(object sender, EventArgs e)
{
    Response.Redirect("DefaultDetails.aspx?FirstName=" + txtFirstName.Text +    "&LastName=" + txtLastName.Text);
}

这是我的默认/新页面代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (PreviousPage != null)
    {
        string firstName = Request.QueryString["FirstName"];
        string lastName = Request.QueryString["LastName"];

    }
}

这是我的 2 个文本框的代码:

        <asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
        <asp:TextBox ID="txtLastName" runat="server"></asp:TextBox>

当我在第一个字符串行(即新页面上的名字)插入中断时,firstName 和 LastName 内的值等于 null。

4

4 回答 4

1

一个新页面,删除 previous_page 条件并检查您是否看到值的天气。这个 previousPage 变量在哪里设置

protected void Page_Load(object sender, EventArgs e)
{
    string firstName = Request.QueryString["FirstName"];
    string lastName = Request.QueryString["LastName"];
}
于 2013-08-15T11:23:28.807 回答
0

You can try this

string Ln=Request["txtFirstName"].toString();
string Fn=Request["txtLastName"].toString();
于 2013-08-15T11:24:48.890 回答
0

原因是 PreviousPage 为空。所以你的名字和姓氏不会被初始化。

“当您使用 Transfer 方法或使用跨页发布将处理从一个 ASP.NET 页面转移到另一个时,原始页面包含目标页面可能需要的请求信息。您可以使用 PreviousPage 属性访问该信息. 如果当前页面是由于直接请求(不是来自另一个页面的传输或交叉发布)而呈现的,则 PreviousPage 属性包含 null。

请参考此处输入链接描述

于 2013-08-15T11:28:48.280 回答
0

你应该使用:

Server.Transfer("DefaultDetails.aspx?FirstName=" + txtFirstName.Text + "&LastName=" + txtLastName.Text);

来自Page.PreviousPage 属性文章:

当您使用 Transfer 方法或使用跨页发布将处理从一个 ASP.NET 页面转移到另一个时,原始页面包含目标页面可能需要的请求信息。您可以使用 PreviousPage 属性来访问该信息。

如果当前页面是由于直接请求(不是来自另一个页面的传输或交叉发布)而呈现的,则 PreviousPage 属性包含null

实际上,如果您要转移请求,以下内容就足够了:

Server.Transfer("DefaultDetails.aspx");

在另一个页面中,您可以获得如下值:

if (PreviousPage != null)
{
    string firstName, lastName;
    var txtFirstName = (TextBox)PreviousPage.FindControl("txtFirstName");
    var txtLastName = (TextBox)PreviousPage.FindControl("txtLastName");
    if (txtFirstName != null)
        firstName = txtFirstName.Text;
    if (txtLastName != null)
        lastName = txtLastName.Text;
}
于 2013-08-15T11:21:58.647 回答