使用查询字符串检索页面数据

时间:2013-08-15 11:09:23

标签: c# asp.net

我正在尝试从主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>

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

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您应该使用:

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

来自Page.PreviousPage Property文章:

  

使用Transfer方法或使用跨页面发布进行传输时   从一个ASP.NET页面处理到另一个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;
}

答案 2 :(得分:0)

你可以试试这个

string Ln=Request["txtFirstName"].toString();
string Fn=Request["txtLastName"].toString();

答案 3 :(得分:0)

原因是PreviousPage为null。因此,您的firstName和lastName将不会被初始化。

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

请参考enter link description here