Button.PostBackUrl Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta l'URL della pagina da pubblicare nella pagina corrente quando si fa clic sul Button controllo .
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à
URL della pagina Web da pubblicare dalla pagina corrente quando si fa clic sul Button controllo. 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 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 utilizzare 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 dell'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 della pagina incrociata.
Importante
In questo esempio è presente una casella di testo che accetta l'input dell'utente, che rappresenta una potenziale minaccia per la sicurezza. Per impostazione predefinita, ASP.NET pagine Web verificare che l'input dell'utente non includa elementi SCRIPT o HTML. Per altre informazioni, vedere Cenni preliminari sugli exploit di 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 .
Annotazioni
Solo i percorsi specificati correttamente funzionano con questa proprietà. Ad esempio, i percorsi relativi (Test/default.aspx), i percorsi assoluti () e virtuali (https://localhost/WebApp/default.aspx~\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 del progetto Web .
Impostare la PostBackUrl proprietà sull'URL della pagina Web su cui eseguire l'inserimento quando si fa clic sul Button controllo. Se ad esempio si specifica Page2.aspx , 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 mostra come viene eseguita 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 Inserimento tra pagine in ASP.NET Web Form.
Questa proprietà non può essere impostata in base a temi o temi del foglio di stile. Per altre informazioni, vedere ThemeableAttribute e ASP.NET Temi e interfacce.