Condividi tramite


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à

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 utilizzare la PostBackUrl proprietà per eseguire un post tra pagine. Quando l'utente fa clic sul Button controllo, la pagina inserisce il valore immesso nella casella di testo nella pagina di destinazione specificata dalla PostBackUrl proprietà . Per eseguire questo esempio, è necessario anche creare 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 seguente.

<%@ 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 utilizzare la Page.PreviousPage proprietà per accedere a un valore inserito 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 inserire il file nella stessa directory del codice per l'esempio precedente. Il nome del file deve corrispondere al valore specificato per la PostBackUrl proprietà nell'esempio precedente. Quando si esegue il codice per l'esempio precedente, questa pagina verrà eseguita automaticamente quando si verifica il post tra pagine.

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, i percorsi relativi (Test/default.aspx), i percorsi assoluti (https://localhost/WebApp/default.aspx) e virtuali (~\Test\default.aspx) funzionano correttamente. I percorsi formati in modo non corretto, ad esempio "/Test/default.aspx" o "\Test\default.aspx" non funzionano. Per informazioni sulla creazione di percorsi corretti, vedere ASP.NET Percorsi di progetto Web .

Impostare la PostBackUrl proprietà sull'URL della pagina Web su cui pubblicare quando si fa clic sul Button controllo . Se ad esempio si Page2.aspx specifica , la pagina che contiene il Button controllo viene postata su Page2.aspx. Se non si specifica un valore per la PostBackUrl proprietà , la pagina esegue il postback a 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 pubblicazione tra pagine, vedere Registrazione tra pagine in ASP.NET Web Form.

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

Si applica a

Vedi anche