Freigeben über


Übergeben von Serversteuerungswerten zwischen Seiten

Beim Erstellen einer Web Forms-Anwendung ist es oftmals erforderlich, Informationen von einer Web Forms-Seite an eine andere zu übertragen. Auf diese Weise können Informationen auf einer Web Forms-Seite eingegeben und zur Verarbeitung an eine andere Seite übermittelt werden.

Das Entwurfsmuster für das Übergeben von Werten zwischen Web Forms-Seiten mit Hilfe von Inlinecode unterscheidet sich geringfügig von dem Muster für CodeBehind-Dateien. Die Auswahl des Entwurfsmusters richtet sich danach, ob Sie die Verwendung von Inlinecode oder von CodeBehind-Dateien bevorzugen. In den folgenden Abschnitten werden beide Entwurfsmuster erörtert.

Entwurfsmuster bei Verwendung von Inlinecode

Wenn Werte mit Hilfe von Inlinecode an eine andere Web Forms-Seite übermittelt werden, müssen Sie zunächst einen Klassennamen für die Web Forms-Seite festlegen, die die zu sendenden Informationen enthält. Sie legen einen Klassennamen für die Web Forms-Seite fest, indem Sie das ClassName-Attribut zusammen mit dem Klassennamen in die @ Page-Direktive einfügen. Als nächstes erstellen Sie für jeden Wert, der gemeinsam genutzt werden soll, in der Klasse eine Eigenschaft mit einem get-Accessor. Der get-Accessor sollte den zu übermittelnden Wert, also z. B. den Wert eines Textfelds, zurückgeben. Um die Informationen zu senden, übertragen Sie die Steuerung der Anwendung mit Hilfe der Transfer-Methode des Server-Objekts auf eine andere Web Forms-Seite.

Fügen Sie auf der empfangenden Web Forms-Seite einen Verweis auf die in der sendenden Seite deklarierte Klasse ein, indem Sie oben auf der Seite eine @Reference-Direktive einfügen, deren Page-Attribut auf die sendende Seite gesetzt ist. Die empfangende Web Forms-Seite kann dann auf die Informationen zugreifen, indem sie zunächst eine Instanz des Handlers abruft, der zuerst die HTTP-Anforderung von der Handler-Eigenschaft des HttpContext-Objekts empfangen hat. Anschließend wird das Handlerobjekt in eine Instanz der Klasse konvertiert, die die übermittelten Informationen einschließt. Nachdem die Konvertierung abgeschlossen ist, kann über die Eigenschaften des konvertierten Objekts auf die übermittelten Werte zugegriffen werden.

VORSICHT   Übergeben Sie keine vertraulichen Daten (z. B. Kreditkartendaten oder Kennwörter) zwischen Seiten.

So erstellen Sie eine Web Forms-Seite, die Werte an eine andere Web Forms-Seite sendet

  1. Legen Sie einen Klassennamen für die Web Forms-Quellseite fest, indem Sie oben auf der Web Forms-Seite eine @Page-Direktive hinzufügen, deren ClassName-Attribut auf einen gültigen Klassennamen gesetzt sein muss.

    <%@ Page Language="VB" ClassName="MyClassName" %>
    [C#]
    <%@ Page Language="C#" ClassName="MyClassName" %>
    
  2. Definieren Sie für jeden Wert, der an eine andere Web Forms-Seite übermittelt werden soll, in der Klasse eine Eigenschaft mit einem get-Accessor. Der get-Accessor sollte einfach den zu übermittelnden Wert, also z. B. den Wert eines Textfelds auf der Web Forms-Seite, zurückgeben. Die Eigenschaften müssen im serverseitigen Skript definiert sein.

    <script runat="server">
       Public ReadOnly Property FirstName() As String
          Get
             ' FirstNameTextBox is the name of a TextBox control.
             Return FirstNameTextBox.Text
          End Get
       End Property
    </script>
    [C#]
    <script runat="server">
       public string FirstName
       {
          get
          {
             // FirstNameTextBox is the name of a TextBox control.
             return FirstNameTextBox.Text;
          }
       }
    </script> 
    
  3. Wenn Sie die Informationen, z. B. beim Klicken auf eine Schaltfläche, an eine andere Web Forms-Seite übermitteln möchten, verwenden Sie die HttpServerUtility.Transfer-Methode, um die Ausführung auf der aktuellen Seite zu beenden und die Steuerung der Anwendung auf eine andere Web Forms-Seite zu übertragen. Die HttpServerUtility.Transfer-Methode verfügt über einen einzelnen Parameter, mit dessen Hilfe der URL der Web Forms-Seite angegeben werden kann, auf die die Steuerung übertragen werden soll.

    Sub SubmitButtonClick(sender As Object, e As EventArgs)
       Server.Transfer("secondpage.aspx")
    End Sub
    
    [C#]
    void SubmitButtonClick(object sender, EventArgs e)
    {
       Server.Transfer("secondpage.aspx");
    }
    

Im Folgenden sehen Sie ein vollständiges Beispiel dafür, wie eine Web Forms-Seite mit Hilfe von Inlinecode erstellt wird und die Werte von zwei TextBox-Steuerelementen an eine andere Web Forms-Seite übermittelt werden. Dieses Beispiel muss mit Firstpage.aspx bezeichnet werden.

<%@ Page Language="VB" ClassName="FirstPageClass" %>

<html>
<head>
 
   <script runat="server">
      Public ReadOnly Property FirstName() As String
         Get
            ' first is the name of a TextBox control.
            Return first.Text
         End Get
      End Property

      Public ReadOnly Property LastName() As String
         Get
            ' last is the name of a TextBox control.
            Return last.Text
         End Get
      End Property

      Sub ButtonClicked(sender As Object, e As EventArgs) 
         Server.Transfer("secondpage.aspx") 
      End Sub

   </script> 

</head>

<body>

   <form runat="server">
      First Name: 
      <asp:TextBox id="first" 
           runat="server"/> 
      <br>
      Last Name: 
      <asp:TextBox id="last" 
           runat="server"/>
      <br>
      <asp:Button 
           OnClick="ButtonClicked" 
           Text="Go to second page"
           runat=server />
   </form>

</body>

</html>
[C#]
<%@ Page Language="C#" ClassName="FirstPageClass" %>

<html>
<head>
 
   <script runat="server">

      public string FirstName 
      { 
         get 
         { 
            return first.Text; 
         } 
      }

      public string LastName 
      { 
         get 
         { 
            return last.Text; 
         } 
      }

      void ButtonClicked(object sender, EventArgs e) 
      { 
         Server.Transfer("secondpage.aspx"); 
      }

   </script> 

</head>

<body>

   <form runat="server">
      First Name: 
      <asp:TextBox id="first" 
           runat="server"/> 
      <br>
      Last Name: 
      <asp:TextBox id="last" 
           runat="server"/>
      <br>
      <asp:Button 
           OnClick="ButtonClicked" 
           Text="Go to second page"
           runat=server />
   </form>

</body>

</html>

So erstellen Sie eine Web Forms-Seite, die Werte von einer anderen Web Forms-Seite empfängt

  1. Fügen Sie oben auf der Web Forms-Seite, die die Informationen empfängt, eine @Reference-Direktive ein, deren Page-Attribut auf die Web Forms-Quellseite (die Web Forms-Seite mit den zu übermittelnden Informationen) gesetzt ist.

    <%@ Reference Page="firstpage.aspx" %>
    
  2. Deklarieren Sie im serverseitigen Skript eine Variable, um eine Instanz der Klasse zu speichern, die in der Web Forms-Seite mit den zu sendenden Informationen definiert ist.

    <script runat="server">
       Dim fp As FirstPageClass
    </script>
    [C#]
    <script runat="server">
       FirstPageClass fp;
    </script>
    
  3. Erstellen Sie einen benutzerdefinierten Page_Load-Ereignishandler, der der im vorherigen Schritt deklarierten Variablen das durch IHttpHandler implementierte Objekt für die aktuelle HTTP-Anforderung zuweist, wenn die Web Forms-Seite keine Postbacks an sich selbst ausführt. Mit Hilfe der IsPostBack-Eigenschaft können Sie feststellen, ob die Seite Postbacks an sich selbst unterstützt. Das durch IHttpHandler implementierte Objekt enthält eine Instanz des Handlers, der zuerst die HTTP-Anforderung empfangen hat. Da das durch IHttpHandler implementierte Objekt und die im vorherigen Schritt deklarierte Variable unterschiedliche Objekttypen aufweisen, muss das Objekt in die Klasse konvertiert werden, die die von der ersten Web Forms-Seite gesendeten Informationen einschließt, bevor es der Variablen zugewiesen werden kann. Rufen Sie das Handlerobjekt mit der Handler-Eigenschaft des HttpContext-Objekts ab.

    <script runat="server">
       Sub Page_Load()
          If Not IsPostBack Then
             fp =  CType(Context.Handler, FirstPageClass)
          End If
       End Sub
    </script>
    
    [C#]
    <script runat="server">
       void Page_Load()
       {
          if (!IsPostBack)
          {
             fp = (FirstPageClass)Context.Handler;
          }
       }
    </script>
    
  4. Die im zweiten Schritt deklarierte Variable enthält nun eine Instanz der Klasse, die die Informationen aus der vorherigen Web Forms-Seite einschließt. Verwenden Sie die Variable, um auf die Eigenschaften der Klasse zuzugreifen, die die von der vorherigen Web Forms-Seite gesendeten Informationen enthält. Sie können programmgesteuert auf diese Werte zugreifen, um eine Berechnung durchzuführen oder um die Werte einfach mit Hilfe der Skripttrennzeichen <%= und %> anzuzeigen.

    Hello <%=fp.FirstName%>
    

Das folgende Beispiel enthält eine vollständige Web Forms-Seite, die zwei Werte von einer anderen Web Forms-Seite empfängt. Anschließend werden die Werte auf der Web Forms-Seite angezeigt. Dieses Beispiel muss mit Secondpage.aspx bezeichnet werden.

<%@ Page Language="VB" %>
<%@ Reference Page="firstpage.aspx" %>

<html>

<head>
 
   <script runat="server">

      Dim fp As FirstPageClass

      Sub Page_Load() 
         If Not IsPostBack Then
            fp = CType(Context.Handler, FirstPageClass)
         End If 
      End Sub

   </script>

</head> 

<body>

   <form runat="server">

      Hello <%=fp.FirstName%> <%=fp.LastName%>

   </form>

</body>

</html>

[C#]
<%@ Page Language="C#" %>
<%@ Reference Page="firstpage.aspx" %>

<html>

<head>
 
   <script runat="server">

      FirstPageClass fp;

      void Page_Load()
      {
         if (!IsPostBack)
         {
            fp = (FirstPageClass)Context.Handler;
         }
      }
   
   </script>

</head> 

<body>

   <form runat="server">

      Hello <%=fp.FirstName%> <%=fp.LastName%>

   </form>

</body>
</html>

Entwurfsmuster bei Verwendung von CodeBehind-Dateien

Bei Verwendung von CodeBehind-Dateien enthält die CodeBehind-Datei eine Klassendeklaration für den mit der Web Forms-Seite verknüpften Code. Erstellen Sie in der CodeBehind-Datei für die Web Forms-Seite, von der die Informationen gesendet werden, zunächst für jeden Wert, der gemeinsam genutzt werden soll, eine Eigenschaft mit einem get-Accessor in der Klasse. Der get-Accessor sollte den zu übermittelnden Wert, also z. B. den Wert eines Textfelds, zurückgeben. Um die Informationen zu senden, übertragen Sie die Steuerung der Anwendung mit Hilfe der Transfer-Methode des Server-Objekts auf eine andere Web Forms-Seite.

Verweisen Sie auf der empfangenden Web Forms-Seite auf die in der sendenden Seite deklarierte Klasse, indem Sie oben auf der Seite eine @Reference-Direktive einfügen, deren Page-Attribut auf die sendende Seite gesetzt ist. Anschließend können Sie eine Instanz des Handlers abrufen, der zuerst die HTTP-Anforderung von der Handler-Eigenschaft des HttpContext-Objekts empfangen hat.

Hinweis   Damit die in der sendenden Web Forms-Seite deklarierte Klasse in der CodeBehind-Datei der empfangenden Web Forms-Seite verfügbar ist, müssen Sie die CodeBehind-Dateien der einzelnen Web Forms-Seiten mit Hilfe des Befehlszeilencompilers manuell in eine einzelne DLL-Datei kompilieren. Die DLL-Datei muss im Verzeichnis \Bin der Web Forms-Anwendung abgelegt werden.

Anschließend wird das Handlerobjekt in eine Instanz der Klasse konvertiert, die die übermittelten Informationen einschließt. Nachdem die Konvertierung abgeschlossen ist, kann über die Eigenschaften des konvertierten Objekts auf die übermittelten Werte zugegriffen werden.

VORSICHT   Übergeben Sie keine vertraulichen Daten (z. B. Kreditkartendaten oder Kennwörter) zwischen Seiten.

So senden Sie Serversteuerelementwerte von einer anderen Web Forms-Seite

  1. Erstellen Sie eine CodeBehind-Datei für die sendende Web Forms-Seite, die eine Klassendeklaration für den mit der Seite verknüpften Code enthält.

    Imports System
    ' Add other references here.
    
    Public Class FirstPageClass
       Inherits System.Web.UI.Page
    
       ' Add class code here.
    
    End Class
    [C#]
    Imports System
    // Add other references here.
    
    public class FirstPageClass : System.Web.UI.Page
    {   
       // Add class code here.
    }
    
  2. Um in der Klasse, die in der CodeBehind-Datei deklariert ist, auf die Serversteuerelemente der Web Forms-Seite zuzugreifen, deklarieren Sie in der Klasse Variablen vom Typ protected, die die Serversteuerelemente darstellen, auf die Sie zugreifen möchten.

    Protected FirstNameTextBox As System.Web.UI.WebControls.TextBox 
    [C#]
    protected System.Web.UI.WebControls.TextBox FirstNameTextBox;
    
  3. Definieren Sie in der im ersten Schritt deklarierten Klasse für jeden Wert, der an eine andere Web Forms-Seite übermittelt werden soll, eine Eigenschaft mit einem get-Accessor. Der get-Accessor sollte einfach den zu übermittelnden Wert, also z. B. den Wert eines Textfelds auf der Web Forms-Seite, zurückgeben.

    Public ReadOnly Property FirstName() As String
       Get
          ' FirstNameTextBox is the name of a TextBox control.
          Return FirstNameTextBox.Text
       End Get
    End Property
    [C#]
    public string FirstName
    {
       get
       {
          // FirstNameTextBox is the name of a TextBox control.
          return FirstNameTextBox.Text;
       }
    }
    
  4. Wenn Sie die Informationen, z. B. beim Klicken auf eine Schaltfläche, an eine andere Web Forms-Seite übermitteln möchten, verwenden Sie die HttpServerUtility.Transfer-Methode, um die Ausführung auf der aktuellen Seite zu beenden und die Steuerung der Anwendung auf eine andere Web Forms-Seite zu übertragen. Die HttpServerUtility.Transfer-Methode verfügt über ein einzelnes Argument, mit dessen Hilfe der URL der Web Forms-Seite angegeben werden kann, auf die die Steuerung übertragen werden soll.

    Sub SubmitButtonClick(sender As Object, e As EventArgs)
       Server.Transfer("secondpage.aspx")
    End Sub
    
    [C#]
    void SubmitButtonClick(object sender, EventArgs e)
    {
       Server.Transfer("secondpage.aspx");
    }
    
  5. Erstellen Sie die Schnittstelle für die Web Forms-Seite, die Informationen sendet. Stellen Sie sicher, dass Sie der @Page-Direktive ein Inherits-Attribut hinzufügen, das auf die in der CodeBehind-Datei deklarierte Klasse gesetzt ist.

    <%@ Page Language="VB" Inherits="FirstPageClass" %>
    
    <html>
    <head>
    
    </head>
    
    <body>
    
       <!-- Add User Interface here -->
    
    </body>
    [C#]
    <%@ Page Language="C#" Inherits="FirstPageClass" %>
    
    <html>
    <head>
    
    </head>
    
    <body>
    
       <!-- Add User Interface here -->
    
    </body>
    

Im Folgenden sehen Sie ein vollständiges Beispiel für eine CodeBehind-Datei, die mit der Web Forms-Seite verknüpft ist, die die Informationen sendet. Abhängig davon, ob Sie Visual Basic oder C# verwenden, müssen Sie sicherstellen, dass dieses Beispiel den Namen Firstpage.aspx.vb bzw. Firstpage.aspx.cs hat.

Imports System

Public Class FirstPageClass :
   Inherits System.Web.UI.Page

   Protected first As System.Web.UI.WebControls.TextBox
   Protected last As System.Web.UI.WebControls.TextBox
   Protected Button1 As System.Web.UI.WebControls.Button

   Public ReadOnly Property FirstName() As String
      Get
         ' first is the name of a TextBox control.
         Return first.Text
      End Get
   End Property

   Public ReadOnly Property LastName() As String
      Get
         ' last is the name of a TextBox control.
         Return last.Text
      End Get
   End Property

   Sub ButtonClicked(sender As Object, e As EventArgs) 
      Server.Transfer("secondpage.aspx") 
   End Sub

End Class
[C#]
using System;

public class FirstPageClass : System.Web.UI.Page
{
   protected System.Web.UI.WebControls.TextBox first;
   protected System.Web.UI.WebControls.TextBox last;
   protected System.Web.UI.WebControls.Button Button1;

   public string FirstName 
   { 
      get 
      { 
         return first.Text; 
      } 
   }

   public string LastName 
   { 
      get 
      { 
         return last.Text; 
      } 
   }

   void ButtonClicked(object sender, EventArgs e) 
   { 
      Server.Transfer("secondpage.aspx"); 
   }

}

Im Folgenden sehen Sie ein vollständiges Beispiel dafür, wie eine Web Forms-Seite mit einer CodeBehind-Datei erstellt wird und die Werte von zwei TextBox-Steuerelementen an eine andere Web Forms-Seite übermittelt werden. Achten Sie darauf, dieses Beispiel Firstpage.aspx zu nennen.

<%@ Page Language="VB" Inherits="FirstPageClass" %>

<html>
<head>

</head>

<body>

   <form runat="server">
      First Name: 
      <asp:TextBox id="first" 
           runat="server"/> 
      <br>
      Last Name: 
      <asp:TextBox id="last" 
           runat="server"/>
      <br>
      <asp:Button
           id="Button1" 
           OnClick="ButtonClicked" 
           Text="Go to second page"
           runat=server />
   </form>

</body>

</html>

[C#]
<%@ Page Language="C#" Inherits="FirstPageClass" %>

<html>
<head>

</head>

<body>

   <form runat="server">
      First Name: 
      <asp:TextBox id="first" 
           runat="server"/> 
      <br>
      Last Name: 
      <asp:TextBox id="last" 
           runat="server"/>
      <br>
      <asp:Button
           id="Button1" 
           OnClick="ButtonClicked" 
           Text="Go to second page"
           runat=server />
   </form>

</body>

</html>

So empfangen Sie Serversteuerelementwerte von einer anderen Web Forms-Seite

  1. Erstellen Sie eine CodeBehind-Datei für die empfangende Web Forms-Seite, die eine Klassendeklaration für den mit der Seite verknüpften Code enthält.

    Imports System
    ' Add other references here.
    
    Public Class SecondPageClass
       Inherits System.Web.UI.Page
    
       ' Add class code here.
    
    End Class
    [C#]
    Imports System
    // Add other references here.
    
    public class SecondPageClass : System.Web.UI.Page
    {   
       // Add class code here.
    }
    
  2. Um auf die Serversteuerelemente der Web Forms-Seite in der CodeBehind-Datei zuzugreifen, deklarieren Sie in der Klasse Variablen vom Typ protected, die die Serversteuerelemente darstellen, auf die Sie zugreifen möchten.

    Protected FirstNameTextBox As System.Web.UI.WebControls.TextBox 
    [C#]
    protected System.Web.UI.WebControls.TextBox FirstNameTextBox;
    
  3. Deklarieren Sie in der Klasse eine Variable, um eine Instanz der Klasse zu speichern, die in der Web Forms-Seite mit den zu sendenden Informationen definiert ist. Wenn die Variable in der empfangenden Web Forms-Seite verfügbar sein soll, deklarieren Sie sie als public.

    Hinweis   Auf die Klasse in der Web Forms-Seite, die die Informationen sendet, kann erst zugegriffen werden, nachdem die CodeBehind-Dateien der einzelnen Web Forms-Seiten in eine einzelne DLL-Datei kompiliert wurden. Die DLL-Datei muss im Verzeichnis \Bin der Webanwendung abgelegt werden. Dieses Verfahren wird in einem späteren Schritt beschrieben.

    Public fp As FirstPageClass
    [C#]
    public FirstPageClass fp;
    
  4. Erstellen Sie einen benutzerdefinierten Page_Load-Ereignishandler, der der im vorherigen Schritt deklarierten Variablen das durch IHttpHandler implementierte Objekt für die aktuelle HTTP-Anforderung zuweist (wenn die Web Forms-Seite keine Postbacks an sich selbst ausführt). Mit Hilfe der IsPostBack-Eigenschaft können Sie feststellen, ob die Seite Postbacks an sich selbst unterstützt. Das durch IHttpHandler implementierte Objekt enthält eine Instanz des Handlers, der zuerst die HTTP-Anforderung empfangen hat. Da das durch IHttpHandler implementierte Objekt und die im vorherigen Schritt deklarierte Variable unterschiedliche Objekttypen aufweisen, muss das Objekt in die Klasse konvertiert werden, die die von der ersten Web Forms-Seite gesendeten Informationen einschließt, bevor es der Variablen zugewiesen werden kann. Rufen Sie das Handlerobjekt mit der Handler-Eigenschaft des HttpContext-Objekts ab.

    Sub Page_Load()
       If Not IsPostBack Then
          fp =  CType(Context.Handler, FirstPageClass)
       End If
    End Sub
    [C#]
    void Page_Load()
    {
       if (!IsPostBack)
       {
          fp = (FirstPageClass)Context.Handler;
       }
    }
    
  5. Die im dritten Schritt deklarierte Variable enthält nun eine Instanz der Klasse, die die Informationen aus der vorherigen Web Forms-Seite einschließt. Verwenden Sie die Variable, um auf die von der vorherigen Web Forms-Seite gesendeten Informationen zuzugreifen. Sie können programmgesteuert auf diese Werte zugreifen, um eine Berechnung durchzuführen oder um die Werte einfach mit Hilfe der Skripttrennzeichen <%= und %> anzuzeigen.

    Hello <%=fp.FirstName%>
    
  6. Erstellen Sie die Schnittstelle für die Web Forms-Seite, die Informationen sendet. Stellen Sie sicher, dass Sie der @Page-Direktive ein Inherits-Attribut hinzufügen, das auf die in der CodeBehind-Datei deklarierte Klasse gesetzt ist.

    <%@ Page Language="VB" Inherits="SecondPageClass" %>
    
    <html>
    <head>
    
    </head>
    
    <body>
    
       <!-- Add User Interface here -->
    
    </body>
    [C#]
    <%@ Page Language="C#" Inherits="SecondPageClass" %>
    
    <html>
    <head>
    
    </head>
    
    <body>
    
       <!-- Add User Interface here -->
    
    </body>
    
  7. Fügen Sie oben auf der Web Forms-Seite, die die Informationen empfängt, eine @Reference-Direktive ein, deren Page-Attribut auf die Web Forms-Quellseite (die Web Forms-Seite mit den zu übermittelnden Informationen) gesetzt ist.

    <%@ Reference Page="firstpage.aspx" %>
    
  8. Die sendende und empfangende Web Forms-Seite sind zu diesem Zeitpunkt fertig gestellt. Bevor die Anwendung jedoch ordnungsgemäß ausgeführt werden kann, müssen die CodeBehind-Dateien der einzelnen Seiten zusammen in eine einzelne DLL-Datei kompiliert werden. Diese DLL-Datei muss im Verzeichnis \Bin der Webanwendung abgelegt werden. Auf diese Weise kann in der empfangenden Web Forms-Seite auf die in der sendenden Web Forms-Seite deklarierte Klasse zugegriffen werden. Um die CodeBehind-Dateien zu kompilieren, geben Sie den folgenden Befehl in die Befehlszeile ein:

    vbc /out:Bin\appname.dll /r:System.dll /r:System.Web.dll /t:library firstpage.aspx.vb secondpage.aspx.vb 
    [C#]
    csc /out:Bin\appname.dll /r:System.dll /r:System.Web.dll /t:library firstpage.aspx.cs secondpage.aspx.cs
    

Im Folgenden sehen Sie ein vollständiges Beispiel für eine CodeBehind-Datei, die mit der Web Forms-Seite verknüpft ist, die die Informationen empfängt. Abhängig davon, ob Sie Visual Basic oder C# verwenden, müssen Sie sicherstellen, dass dieses Beispiel den Namen Secondpage.aspx.vb bzw. Secondpage.aspx.cs hat.

Imports System

Public Class SecondPageClass  
   Inherits System.Web.UI.Page

   Protected DisplayLabel As System.Web.UI.WebControls.Label
   Public fp As FirstPageClass

Sub Page_Load()
   If Not IsPostBack Then
      fp =  CType(Context.Handler, FirstPageClass)
   End If
   End Sub

End Class
[C#]
using System;

public class SecondPageClass : System.Web.UI.Page
{

   protected System.Web.UI.WebControls.Label DisplayLabel;
   public FirstPageClass fp;

   void Page_Load() 
   {
      if (!IsPostBack)
      {
         fp = (FirstPageClass) Context.Handler;
      } 
   }

}

Im Folgenden sehen Sie ein vollständiges Beispiel dafür, wie eine Web Forms-Seite mit einer CodeBehind-Datei erstellt wird, um die von einer anderen Web Forms-Seite übermittelten Werte zu empfangen. Achten Sie darauf, dass dieses Beispiel den Namen Secondpage.aspx hat.

<%@ Page Language="VB" Inherits="SecondPageClass" %>
<%@ Reference Page="firstpage.aspx" %>

<html>

<head>

</head> 

<body>

   <form runat="server">

      Hello <%=fp.FirstName%> <%=fp.LastName%>

   </form>

</body>

</html>
[C#]
<%@ Page Language="C#" Inherits="SecondPageClass" %>
<%@ Reference Page="firstpage.aspx" %>

<html>

<head>

</head> 

<body>

   <form runat="server">

      Hello <%=fp.FirstName%> <%=fp.LastName%>

   </form>

</body>

</html>

Siehe auch

@Page-Direktive | HttpServerUtility.Transfer | TextBox | IHttpHandler | Handler