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 は機能しません。マスターページを使用する場合、Default.aspx のすべてのコントロールは、フォームに直接ではなく ContentPlaceHolder に配置されるためです。したがって、以下のコードを使用できます。

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

マスターページを使用していると仮定します。それ以外の場合は、最初のコードが機能する必要があります。さらに、masterpage を使用せず、テキストボックスが PlaceHolder または Panel に配置されている場合、コードも機能しません。FindControl は、子コンテナー コントロールを再帰的に検索しません。

リンクを参照してください。MSDN

于 2012-10-07T14:39:17.283 に答える
1

Page.PreviousPageServer.Transferを使用して新しいページにリダイレクトする場合にのみ使用できます。これが標準GETまたはPOSTの場合Response.Redirect、このコードは機能しません。

前のページから。Server.Transfer前のページ データにアクセスできるようにするために使用します。

于 2012-10-07T13:01:25.120 に答える