Button.PostBackUrl Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia adres URL strony do publikowania z bieżącej strony po kliknięciu kontrolki 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
Wartość właściwości
Adres URL strony sieci Web do opublikowania na stronie bieżącej po kliknięciu kontrolki Button . Wartość domyślna to pusty ciąg (""), co powoduje, że strona będzie publikować z powrotem do siebie.
Implementuje
- Atrybuty
Przykłady
W poniższym przykładzie kodu pokazano, jak za pomocą PostBackUrl właściwości wykonać wpis międzystronicowy. Gdy użytkownik kliknie kontrolkę Button , strona publikuje wartość wprowadzoną w polu tekstowym do strony docelowej określonej przez PostBackUrl właściwość. Aby uruchomić ten przykład, należy również utworzyć plik dla strony docelowej w tym samym katalogu co ten przykład kodu. Kod strony docelowej jest podany w następnym przykładzie.
<%@ 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>
W poniższym przykładzie kodu pokazano, jak za pomocą Page.PreviousPage właściwości uzyskać dostęp do wartości opublikowanej PostBackUrl na innej stronie przy użyciu właściwości . Ta strona pobiera ciąg, który został opublikowany z poprzedniej strony i wyświetla go użytkownikowi. Jeśli spróbujesz uruchomić ten przykład kodu bezpośrednio, zostanie wyświetlony błąd, ponieważ wartość text
pola będzie następująca null
: . Zamiast tego użyj tego kodu, aby utworzyć stronę docelową i umieścić plik w tym samym katalogu co kod dla poprzedniego przykładu. Nazwa pliku musi odpowiadać wartości określonej dla PostBackUrl właściwości w poprzednim przykładzie. Po uruchomieniu kodu dla poprzedniego przykładu ta strona zostanie wykonana automatycznie po wystąpieniu wpisu między stronami.
Ważne
W tym przykładzie znajduje się pole tekstowe, które akceptuje dane wejściowe użytkownika, co jest potencjalnym zagrożeniem bezpieczeństwa. Domyślnie ASP.NET strony sieci Web weryfikują, czy dane wejściowe użytkownika nie zawierają skryptów ani elementów HTML. Aby uzyskać więcej informacji, zobacz Omówienie luk w zabezpieczeniach skryptów.
<%@ 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>
Uwagi
Właściwość PostBackUrl umożliwia wykonywanie międzystronicowego wpisu przy użyciu kontrolki Button .
Uwaga
Tylko poprawnie określone ścieżki działają z tą właściwością. Na przykład ścieżki względne (), ścieżki bezwzględne (Test/default.aspx
https://localhost/WebApp/default.aspx
) i wirtualne (~\Test\default.aspx
) działają poprawnie. Niepoprawnie sformułowane ścieżki, takie jak "/Test/default.aspx" lub "\Test\default.aspx", nie działają. Zobacz ASP.NET Ścieżki projektów internetowych , aby zapoznać się z omówieniem tworzenia prawidłowych ścieżek.
PostBackUrl Ustaw właściwość na adres URL strony sieci Web, aby publikować na wartość po kliknięciu kontrolkiButton. Na przykład określenie Page2.aspx
powoduje, że strona zawierająca kontrolkę Button ma być publikowana na Page2.aspx
. Jeśli nie określisz wartości właściwości PostBackUrl , strona opublikuje się z powrotem do siebie.
Ważne
Podczas przeprowadzania wycofywania międzystronicowego z kontrolkami z walidacją po stronie serwera należy sprawdzić, czy właściwość strony IsValid jest true
przed przetworzeniem po powrocie zwrotnej. W przypadku odsyłania zwrotnego między stronami strona do sprawdzenia to PreviousPage. Poniższy kod VB pokazuje, jak to zrobić:
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
Aby uzyskać więcej informacji na temat technik publikowania między stronami, zobacz Publikowanie między stronami w formularzach internetowych ASP.NET.
Nie można ustawić tej właściwości według motywów ani motywów arkusza stylów. Aby uzyskać więcej informacji, zobacz ThemeableAttributei ASP.NET Motywy i skóry.