Compartir vía


Button.PostBackUrl Propiedad

Definición

Obtiene o establece la dirección URL de la página de destino del envío desde la página actual cuando se hace clic en el control 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 de propiedad

La dirección URL de la página Web de destino del envío desde la página actual cuando se hace clic en el control Button. El valor predeterminado es una cadena vacía ("") que hace que la página se devuelva datos a sí misma.

Implementaciones

Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar la PostBackUrl propiedad para realizar una publicación entre páginas. Cuando el usuario hace clic en el Button control, la página publica el valor especificado en el cuadro de texto en la página de destino especificada por la PostBackUrl propiedad . Para ejecutar este ejemplo, también debe crear un archivo para la página de destino en el mismo directorio que este ejemplo de código. El código de la página de destino se proporciona en el ejemplo siguiente.

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

En el ejemplo de código siguiente se muestra cómo usar la Page.PreviousPage propiedad para tener acceso a un valor publicado desde otra página mediante la PostBackUrl propiedad . Esta página obtiene la cadena publicada desde la página anterior y la muestra al usuario. Si intenta ejecutar este ejemplo de código directamente, obtendrá un error porque el valor del text campo será null. En su lugar, use este código para crear una página de destino y colocar el archivo en el mismo directorio que el código del ejemplo anterior. El nombre del archivo debe corresponder al valor especificado para la PostBackUrl propiedad en el ejemplo anterior. Al ejecutar el código del ejemplo anterior, esta página se ejecutará automáticamente cuando se produzca la publicación entre páginas.

Importante

Este ejemplo tiene un cuadro de texto que acepta datos proporcionados por el usuario, lo que puede suponer una amenaza para la seguridad. De forma predeterminada, ASP.NET Web Pages valida que los datos proporcionados por el usuario no incluyen elementos HTML ni de script. Para más información, consulte Información general sobre los ataques mediante scripts.

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

Comentarios

La PostBackUrl propiedad permite realizar una publicación entre páginas mediante el Button control .

Nota

Solo las rutas de acceso especificadas correctamente funcionan con esta propiedad. Por ejemplo, las rutas de acceso relativas (Test/default.aspx), las rutas de acceso absolutas (https://localhost/WebApp/default.aspx) y virtual (~\Test\default.aspx) funcionan correctamente. Las rutas de acceso con formato incorrecto, como "/Test/default.aspx" o "\Test\default.aspx" no funcionan. Consulte ASP.NET Rutas de acceso del proyecto web para obtener una explicación sobre cómo crear rutas de acceso correctas.

Establezca la PostBackUrl propiedad en la dirección URL de la página web en la que se publicará cuando se haga clic en el Button control. Por ejemplo, especificar Page2.aspx hace que la página que contiene el Button control se publique en Page2.aspx. Si no especifica un valor para la PostBackUrl propiedad , la página se envía a sí misma.

Importante

Al realizar una postback entre páginas con controles con validación del lado servidor, debe comprobar que la propiedad de la página es true antes de IsValid procesar el postback. En el caso de una postback entre páginas, la página que se va a comprobar es .PreviousPage En el código VB siguiente se muestra cómo se hace esto:

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 obtener más información sobre las técnicas de publicación entre páginas, vea Publicación entre páginas en ASP.NET Formularios web.

Esta propiedad no se puede establecer mediante temas o temas de la hoja de estilos. Para obtener más información, consulte ThemeableAttribute y ASP.NET Temas y máscaras.

Se aplica a

Consulte también