Udostępnij za pośrednictwem


Button.PostBackUrl Właściwość

Definicja

Pobiera lub ustawia adres URL strony do publikowania z bieżącej strony po kliknięciu kontrolki Button .

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

Wartość właściwości

Adres URL strony sieci Web do opublikowania na stronie bieżącej po kliknięciu kontrolki Button . Wartość domyślna to pusty ciąg (""), co powoduje, że strona będzie publikować z powrotem do siebie.

Implementuje

Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano, jak za pomocą PostBackUrl właściwości wykonać wpis międzystronicowy. Gdy użytkownik kliknie kontrolkę Button , strona publikuje wartość wprowadzoną w polu tekstowym do strony docelowej określonej przez PostBackUrl właściwość. Aby uruchomić ten przykład, należy również utworzyć plik dla strony docelowej w tym samym katalogu co ten przykład kodu. Kod strony docelowej jest podany w następnym przykładzie.

<%@ 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>

W poniższym przykładzie kodu pokazano, jak za pomocą Page.PreviousPage właściwości uzyskać dostęp do wartości opublikowanej PostBackUrl na innej stronie przy użyciu właściwości . Ta strona pobiera ciąg, który został opublikowany z poprzedniej strony i wyświetla go użytkownikowi. Jeśli spróbujesz uruchomić ten przykład kodu bezpośrednio, zostanie wyświetlony błąd, ponieważ wartość text pola będzie następująca null: . Zamiast tego użyj tego kodu, aby utworzyć stronę docelową i umieścić plik w tym samym katalogu co kod dla poprzedniego przykładu. Nazwa pliku musi odpowiadać wartości określonej dla PostBackUrl właściwości w poprzednim przykładzie. Po uruchomieniu kodu dla poprzedniego przykładu ta strona zostanie wykonana automatycznie po wystąpieniu wpisu między stronami.

Ważne

W tym przykładzie znajduje się pole tekstowe, które akceptuje dane wejściowe użytkownika, co jest potencjalnym zagrożeniem bezpieczeństwa. Domyślnie ASP.NET strony sieci Web weryfikują, czy dane wejściowe użytkownika nie zawierają skryptów ani elementów HTML. Aby uzyskać więcej informacji, zobacz Omówienie luk w zabezpieczeniach skryptów.

<%@ 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>

Uwagi

Właściwość PostBackUrl umożliwia wykonywanie międzystronicowego wpisu przy użyciu kontrolki Button .

Uwaga

Tylko poprawnie określone ścieżki działają z tą właściwością. Na przykład ścieżki względne (), ścieżki bezwzględne (Test/default.aspxhttps://localhost/WebApp/default.aspx) i wirtualne (~\Test\default.aspx) działają poprawnie. Niepoprawnie sformułowane ścieżki, takie jak "/Test/default.aspx" lub "\Test\default.aspx", nie działają. Zobacz ASP.NET Ścieżki projektów internetowych , aby zapoznać się z omówieniem tworzenia prawidłowych ścieżek.

PostBackUrl Ustaw właściwość na adres URL strony sieci Web, aby publikować na wartość po kliknięciu kontrolkiButton. Na przykład określenie Page2.aspx powoduje, że strona zawierająca kontrolkę Button ma być publikowana na Page2.aspx. Jeśli nie określisz wartości właściwości PostBackUrl , strona opublikuje się z powrotem do siebie.

Ważne

Podczas przeprowadzania wycofywania międzystronicowego z kontrolkami z walidacją po stronie serwera należy sprawdzić, czy właściwość strony IsValid jest true przed przetworzeniem po powrocie zwrotnej. W przypadku odsyłania zwrotnego między stronami strona do sprawdzenia to PreviousPage. Poniższy kod VB pokazuje, jak to zrobić:

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

Aby uzyskać więcej informacji na temat technik publikowania między stronami, zobacz Publikowanie między stronami w formularzach internetowych ASP.NET.

Nie można ustawić tej właściwości według motywów ani motywów arkusza stylów. Aby uzyskać więcej informacji, zobacz ThemeableAttributei ASP.NET Motywy i skóry.

Dotyczy

Zobacz też