Button.PostBackUrl Propriedade

Definição

Obtém ou define a URL da página que será usada para postagem da página atual quando um usuário clicar no controle 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

Valor da propriedade

String

A URL da página da Web que será usada para postagem da página atual quando o controle Button for acionado. O valor padrão é uma cadeia de caracteres vazia (""), que faz com que a página execute postback para si mesma.

Implementações

Atributos

Exemplos

O exemplo de código a seguir demonstra como usar a PostBackUrl propriedade para executar uma postagem entre páginas. Quando o usuário clica no Button controle, a página posta o valor inserido na caixa de texto na página de destino especificada pela PostBackUrl propriedade. Para executar este exemplo, você também deve criar um arquivo para a página de destino no mesmo diretório que este exemplo de código. O código para a página de destino é fornecido no próximo exemplo.

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

O exemplo de código a seguir demonstra como usar a Page.PreviousPage propriedade para acessar um valor que foi postado de outra página usando a PostBackUrl propriedade. Esta página obtém a cadeia de caracteres que foi postada da página anterior e a exibe para o usuário. Se você tentar executar este exemplo de código diretamente, receberá um erro porque o valor do text campo será null. Em vez disso, use esse código para criar uma página de destino e colocar o arquivo no mesmo diretório que o código do exemplo anterior. O nome do arquivo deve corresponder ao valor especificado para a PostBackUrl propriedade no exemplo anterior. Quando você executar o código do exemplo anterior, essa página será executada automaticamente quando a postagem entre páginas ocorrer.

Importante

Este exemplo tem uma caixa de texto que aceita a entrada do usuário, que é uma ameaça à segurança em potencial. Por padrão, ASP.NET páginas da Web validam que a entrada do usuário não inclui elementos HTML ou script. Para obter mais informações, consulte Visão geral de explorações de 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>

Comentários

A PostBackUrl propriedade permite que você execute uma postagem entre páginas usando o Button controle.

Observação

Somente caminhos especificados corretamente funcionam com essa propriedade. Por exemplo, caminhos relativos (Test/default.aspx), caminhos absolutos (https://localhost/WebApp/default.aspx) e virtuais (~\Test\default.aspx) funcionam corretamente. Caminhos formados incorretamente, como "/Test/default.aspx" ou "\Test\default.aspx" não funcionam. Consulte ASP.NET Caminhos de Project web para obter uma discussão sobre como criar caminhos corretos.

Defina a PostBackUrl propriedade como a URL da página da Web para postar quando o Button controle for clicado. Por exemplo, especificar Page2.aspx faz com que a página que contém o Button controle seja postada Page2.aspx. Se você não especificar um valor para a PostBackUrl propriedade, a página será posta de volta para si mesma.

Importante

Ao executar um postback entre páginas com controles com validação do lado do servidor, você deve verificar se a propriedade da IsValid página está true antes de processar o postback. No caso de um postback entre páginas, a página a ser verificada é a PreviousPage. O código VB a seguir mostra como isso é feito:

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

Para obter mais informações sobre técnicas de postagem entre páginas, consulte Postagem entre páginas no ASP.NET Web Forms.

Essa propriedade não pode ser definida por temas ou temas de folha de estilos. Para obter mais informações, consulte ThemeableAttribute e ASP.NET Temas e Peles.

Aplica-se a

Confira também