Button.PostBackUrl Proprietà

Definizione

Ottiene o imposta l'URL della pagina a cui effettuare l'invio dalla pagina corrente quando si fa clic sul controllo 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

Valore della proprietà

String

L'URL della pagina Web a cui effettuare l'invio dalla pagina corrente quando si fa clic sul controllo Button. Il valore predefinito è una stringa vuota (""), che determina il postback della pagina a se stessa.

Implementazioni

Attributi

Esempio

Nell'esempio di codice seguente viene illustrato come usare la PostBackUrl proprietà per eseguire un post tra pagine. Quando l'utente fa clic sul Button controllo, la pagina pubblica il valore immesso nella casella di testo nella pagina di destinazione specificata dalla PostBackUrl proprietà. Per eseguire questo esempio, è necessario creare anche un file per la pagina di destinazione nella stessa directory di questo esempio di codice. Il codice per la pagina di destinazione viene fornito nell'esempio successivo.

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

Nell'esempio di codice seguente viene illustrato come usare la Page.PreviousPage proprietà per accedere a un valore pubblicato da un'altra pagina usando la PostBackUrl proprietà . Questa pagina ottiene la stringa pubblicata dalla pagina precedente e la visualizza all'utente. Se si tenta di eseguire direttamente questo esempio di codice, verrà visualizzato un errore perché il valore del text campo sarà null. Usare invece questo codice per creare una pagina di destinazione e posizionare il file nella stessa directory del codice per l'esempio precedente. Il nome del file deve corrispondere al valore specificato per la proprietà nell'esempio PostBackUrl precedente. Quando si esegue il codice per l'esempio precedente, questa pagina verrà eseguita automaticamente quando si verifica il post della pagina incrociata.

Importante

L'esempio include una casella di testo che accetta l'input dell'utente e rappresenta quindi una potenziale minaccia alla sicurezza. Per impostazione predefinita, le pagine Web ASP.NET verificano che l'input dell'utente non includa script o elementi HTML. Per altre informazioni, vedere Cenni preliminari sugli attacchi tramite script.

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

Commenti

La PostBackUrl proprietà consente di eseguire un post tra pagine usando il Button controllo .

Nota

Solo i percorsi specificati correttamente funzionano con questa proprietà. Ad esempio, percorsi relativi (), percorsi assoluti (Test/default.aspx) e virtuale (~\Test\default.aspx``https://localhost/WebApp/default.aspx) funzionano correttamente. I percorsi formati in modo errato, ad esempio "/Test/default.aspx" o "\Test\default.aspx" non funzionano. Vedere ASP.NET Percorsi di Project Web per una discussione sulla creazione di percorsi corretti.

Impostare la PostBackUrl proprietà sull'URL della pagina Web su su quando viene fatto clic sul Button controllo. Ad esempio, se si specifica Page2.aspx , la pagina contenente il Button controllo viene postata in Page2.aspx. Se non si specifica un valore per la proprietà, la PostBackUrl pagina esegue il post di nuovo su se stessa.

Importante

Quando si esegue un postback tra pagine con controlli con convalida lato server, è necessario verificare che la proprietà della pagina sia true prima di IsValid elaborare il postback. Nel caso di un postback tra pagine, la pagina da controllare è .PreviousPage Il codice VB seguente illustra come eseguire questa operazione:

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

Per altre informazioni sulle tecniche di registrazione tra pagine, vedere Registrazione tra pagine in Web Forms ASP.NET.

Questa proprietà non può essere impostata da temi oppure temi di fogli di stile. Per altre informazioni, vedere ThemeableAttribute e ASP.NET Temi e skin.

Si applica a

Vedi anche