Freigeben über


Button.PostBackUrl Eigenschaft

Definition

Ruft die URL der Seite ab, an die Daten von der aktuellen Seite gesendet werden sollen, wenn auf das Button-Steuerelement geklickt wird, oder legt diese fest.

public:
 virtual property System::String ^ PostBackUrl { System::String ^ get(); void set(System::String ^ value); };
[System.Web.UI.Themeable(false)]
public virtual string PostBackUrl { get; set; }
[<System.Web.UI.Themeable(false)>]
member this.PostBackUrl : string with get, set
Public Overridable Property PostBackUrl As String

Eigenschaftswert

String

Die URL der Webseite, an die Daten von der aktuellen Seite gesendet werden sollen, wenn auf das Button-Steuerelement geklickt wird. Der Standardwert ist eine leere Zeichenfolge (""), wodurch die Seite an sich selbst zurückgesendet wird.

Implementiert

Attribute

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie die PostBackUrl Eigenschaft verwenden, um einen seitenübergreifenden Beitrag auszuführen. Wenn der Benutzer auf das Steuerelement klickt, postet Button die Seite den wert, der im Textfeld eingegeben wird, auf die Zielseite, die von der PostBackUrl Eigenschaft angegeben wird. Um dieses Beispiel auszuführen, müssen Sie auch eine Datei für die Zielseite im gleichen Verzeichnis wie dieses Codebeispiel erstellen. Der Code für die Zielseite wird im nächsten Beispiel bereitgestellt.

<%@ page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
  <title>Button.PostBackUrl Example</title>
</head>
<body>    
  <form id="form1" runat="server">
    
    <h3>Button.PostBackUrl Example</h3>

    Enter a value to post:
    <asp:textbox id="TextBox1" 
      runat="Server">
    </asp:textbox>

    <br /><br />

    <asp:button id="Button1" 
      text="Post back to this page"
      runat="Server">
    </asp:button>

    <br /><br />

    <asp:button id="Button2"
      text="Post value to another page" 
      postbackurl="Button.PostBackUrlPage2cs.aspx" 
      runat="Server">
    </asp:button>

  </form>
</body>
</html>
<%@ page language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
  <title>Button.PostBackUrl Example</title>
</head>
<body>    
  <form id="form1" runat="server">
    
    <h3>Button.PostBackUrl Example</h3>

    Enter a value to post:
    <asp:textbox id="TextBox1" 
      runat="Server">
    </asp:textbox>

    <br /><br />

    <asp:button id="Button1" 
      text="Post back to this page"
      runat="Server">
    </asp:button>

    <br /><br />

    <asp:button id="Button2"
      text="Post value to another page" 
      postbackurl="Button.PostBackUrlPage2vb.aspx" 
      runat="Server">
    </asp:button>

  </form>
</body>
</html>

Im folgenden Codebeispiel wird veranschaulicht, wie Sie mithilfe der Eigenschaft auf einen Wert zugreifen, der über die Page.PreviousPage PostBackUrl Eigenschaft aus einer anderen Seite veröffentlicht wurde. Auf dieser Seite wird die Zeichenfolge abgerufen, die von der vorherigen Seite veröffentlicht wurde und dem Benutzer angezeigt wird. Wenn Sie versuchen, dieses Codebeispiel direkt auszuführen, erhalten Sie einen Fehler, da der Wert des text Felds lautet null. Verwenden Sie stattdessen diesen Code, um eine Zielseite zu erstellen und die Datei im gleichen Verzeichnis wie der Code für das vorherige Beispiel zu platzieren. Der Name der Datei muss dem für die PostBackUrl Eigenschaft im vorherigen Beispiel angegebenen Wert entsprechen. Wenn Sie den Code für das vorherige Beispiel ausführen, wird diese Seite automatisch ausgeführt, wenn der Seitenbeitrag auftritt.

Wichtig

Dieses Beispiel umfasst ein Textfeld, das Benutzereingaben akzeptiert, die ein potenzielles Sicherheitsrisiko darstellen. Standardmäßig stellen ASP.NET-Webseiten sicher, dass Benutzereingaben keine Skript- oder HTML-Elemente enthalten. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.

<%@ page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  
  void Page_Load (object sender, System.EventArgs e)
  {
    string text;
    
    // Get the value of TextBox1 from the page that 
    // posted to this page.
    text = ((TextBox)PreviousPage.FindControl("TextBox1")).Text;
    
    // Check for an empty string.
    if (text != "")
      PostedLabel.Text = "The string posted from the previous page is "
                         + text + ".";
    else
      PostedLabel.Text = "An empty string was posted from the previous page.";
  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
  <title>Button.PostBackUrl Target Page Example</title>
</head>
<body>
  <form id="form1" runat="server">
    
    <h3>Button.PostBackUrl Target Page Example</h3>
      
    <br />
    
    <asp:label id="PostedLabel"
       runat="Server">
    </asp:label>

    </form>
</body>
</html>
<%@ page language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
    
    Dim text As String
    
    ' Get the value of TextBox1 from the page that posted
    ' to this page.
    text = CType((PreviousPage.FindControl("TextBox1")), TextBox).Text
       
    ' Check for an empty string.
    If Not (text = "") Then
      PostedLabel.Text = "The string posted from the previous page is " _
                         & text & "."
    Else
      PostedLabel.Text = "An empty string was posted from the previous page."
    End If
    
  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
  <title>Button.PostBackUrl Target Page Example</title>
</head>
<body>
  <form id="form1" runat="server">
    
    <h3>Button.PostBackUrl Target Page Example</h3>
       
    <br />
    
    <asp:label id="PostedLabel"
       runat="Server">
    </asp:label>

    </form>
</body>
</html>

Hinweise

Mit der PostBackUrl Eigenschaft können Sie einen seitenübergreifenden Beitrag mithilfe des Button Steuerelements ausführen.

Hinweis

Nur ordnungsgemäß angegebene Pfade funktionieren mit dieser Eigenschaft. Beispielsweise funktionieren relative Pfade (), absolute Pfade () und virtuelle (Test/default.aspx``https://localhost/WebApp/default.aspx``~\Test\default.aspx) ordnungsgemäß. Falsch formatierte Pfade wie "/Test/default.aspx" oder "\Test\default.aspx" funktionieren nicht. Siehe ASP.NET Web Project Pfade für eine Diskussion zum Erstellen korrekter Pfade.

Legen Sie die PostBackUrl Eigenschaft auf die URL der Webseite fest, um zu posten, wenn das Button Steuerelement geklickt wird. Wenn Sie z. B. die Seite angeben Page2.aspx , die das Button Steuerelement enthält, um zu posten Page2.aspx. Wenn Sie keinen Wert für die PostBackUrl Eigenschaft angeben, posten die Seiten zurück zu sich selbst.

Wichtig

Wenn Sie ein seitenübergreifendes Postback mit Steuerelementen mit serverseitiger Überprüfung ausführen, sollten Sie überprüfen, ob die Eigenschaft der Seite IsValid vor der Verarbeitung des Postbacks liegt true . Bei einem seitenübergreifenden Postback ist die zu überprüfende Seite die PreviousPage. Der folgende VB Code zeigt, wie dies erfolgt:

Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Page.PreviousPage.IsValid Then
            ' Handle the post back
        Else
            Response.Write("Invalid")
        End If
End Sub

Weitere Informationen zu seitenübergreifenden Postentechniken finden Sie unter "Seitenübergreifendes Posten" in ASP.NET Web Forms.

Diese Eigenschaft kann nicht durch Designs oder Stylesheetdesigns festgelegt werden. Weitere Informationen finden Sie unter ThemeableAttribute und ASP.NET-Designs und Skins.

Gilt für

Siehe auch