Button.PostBackUrl Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает или задает URL-адрес страницы, на которую осуществляется передача с текущей страницы при нажатии элемента управления 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
Значение свойства
URL-адрес веб-страницы, на которую осуществляется передача с текущей страницы при нажатии элемента управления Button. Значение по умолчанию — пустая строка (""), которая приводит к обратной передаче страницы самой себе.
Реализации
- Атрибуты
Примеры
В следующем примере кода показано, как использовать PostBackUrl свойство для выполнения записи на нескольких страницах. Когда пользователь щелкает Button элемент управления, страница публикует значение, введенное в текстовом поле, на целевую страницу, указанную свойством PostBackUrl . Чтобы запустить этот пример, необходимо также создать файл для целевой страницы в том же каталоге, что и в этом примере кода. Код для целевой страницы приведен в следующем примере.
<%@ 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>
В следующем примере кода показано, как использовать Page.PreviousPage свойство для доступа к значению, которое было опубликовано с другой страницы с помощью PostBackUrl свойства . Эта страница получает строку, опубликованную с предыдущей страницы, и отображает ее пользователю. Если вы попытаетесь выполнить этот пример кода напрямую, вы получите сообщение об ошибке, так как значение text
поля будет равно null
. Вместо этого используйте этот код для создания целевой страницы и размещения файла в том же каталоге, что и код для предыдущего примера. Имя файла должно соответствовать значению, указанному PostBackUrl для свойства в предыдущем примере. При выполнении кода для предыдущего примера эта страница будет выполняться автоматически при перекрестной публикации.
Важно!
В этом примере имеется текстовое поле, принимающее вводимые пользователем данные, что является потенциальной угрозой безопасности. По умолчанию данные, вводимые пользователем на веб-страницах ASP.NET, проверяются на наличие скриптов и HTML-элементов. Дополнительные сведения см. в разделе Общие сведения об использовании сценариев.
<%@ 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>
Комментарии
Свойство PostBackUrl позволяет выполнять межстраничную публикацию с помощью Button элемента управления .
Примечание
С этим свойством работают только правильно указанные пути. Например, относительные пути (Test/default.aspx
), абсолютные пути (https://localhost/WebApp/default.aspx
) и виртуальные (~\Test\default.aspx
) работают правильно. Неправильно сформированные пути, такие как "/Test/default.aspx" или "\Test\default.aspx", не работают. Обсуждение создания правильных путей см. в разделе ASP.NET пути веб-проекта .
Задайте для PostBackUrl свойства URL-адрес веб-страницы, в который будет отправляться сообщение при щелчке Button элемента управления. Например, при указании Page2.aspx
страницы, содержащей Button элемент управления , отправляется в Page2.aspx
. Если не указать значение для PostBackUrl свойства, страница возвращается к самой себе.
Важно!
При выполнении обратной передачи на нескольких страницах с элементами управления с проверкой на стороне сервера перед обработкой обратной передачи следует проверить, что свойство страницы IsValid имеет true
значение . В случае обратной передачи между страниц проверяемой страницей PreviousPageявляется . В следующем коде VB показано, как это сделать:
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
Дополнительные сведения о методах межстраничной публикации см. в разделе Межстраничные публикации в ASP.NET Веб-форм.
Значение для данного свойства нельзя задать с помощью тем или тем таблиц стилей. Дополнительные сведения см. в разделах ThemeableAttribute и ASP.NET Темы и обложки.