0

可能重复:
在 C# ASP.Net 中将数据从一个页面发送到另一个页面

嗨,我正在尝试在 asp.net 中将数据从一个页面发送到另一个页面,我发现了各种这样做的方法,我会尝试一些方法来了解它们是如何工作的,但我第一次尝试时似乎遇到了错误。这是我的代码:

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Go" 
    PostBackUrl="~/Default2.aspx" />
<br />

我将数据从 Default.aspx 发送到 Default2.aspx。在 Page_Load 方法的 Default2.aspx 中,我写了这个来检索数据:

  if (Page.PreviousPage != null)
    {
        string txtBox1 = ((TextBox)Page.PreviousPage.FindControl("TextBox1")).Text;
    }

从我在 MSDN 上阅读的内容来看,这应该可以工作,但我必须遗漏一些东西,因为当我按下按钮发送数据并加载 Default2.aspx 时,我得到一个如下所示的错误页面:

在此处输入图像描述 在此处输入图像描述

4

2 回答 2

2

如果您对 Default.aspx 使用母版页,则 Page.PreviousPage.FindControl 不起作用。因为在使用masterpage时,Default.aspx中的所有控件都放在ContentPlaceHolder中,而不是直接放在Form中。所以你可以使用下面的代码:

Page.PreviousPage.Form.FindControl("yourContentPlaceHolderID").FindControl("TextBox1");

我假设您使用母版页。否则,您的第一个代码必须有效。此外,如果您不使用母版页并将文本框放置在 PlaceHolder 或 Panel 中,您的代码将无法正常工作。FindControl 不会在子容器控件中递归搜索。

请参阅链接。MSDN

于 2012-10-07T14:39:17.283 回答
1

Page.PreviousPage仅在Server.Transfer用于重定向到新页面时可用。如果这是标准GETPOSTResponse.Redirect则此代码将不起作用。

从您的上一页。用于Server.Transfer访问前一页数据。

于 2012-10-07T13:01:25.120 回答