Отправка данных формы другой странице ASP.NET
Существенное ограничение серверных форм в ASP.NET 1.0 – отсутствие возможности непосредственно передавать данные, введенные в форме, другой странице. Чтобы отправить значения элементов на форму другой страницы необходимо использовать простую HTML форму и в атрибуте action указать путь к странице, которая должна получить данные. При этом теряются преимущества использования серверных форм.
В ASP.NET 2.0 тег элемента управления может иметь дополнительный атрибут PostBackUrl, позволяющий указать какой странице система должна передать Web-форму, если отправление данных на сервер инициировано этим элементом управления.
<form id="frmTest" runat="server">
<asp:textbox id="txtFirstName" runat="server" />
<br /><asp:textbox id="txtLastName" runat="server" />
<br /><asp:button id="btnSend" Text="Post Data" PostBackUrl="crosspost.aspx"runat="server" />
</form>
После щелчка по кнопке, браузер пользователя будет переадресован на страницу crosspost.aspx, при этом вся информация об элементах управления формы, с которой произошло отправление данных, будет также передано.
Чтобы реализовать эту возможность, среда ASP.NET 2.0 осуществляет проверку ASPX страниц на предмет наличия элементов управления с заданным атрибутом PostBackUrl и, при наличии таковых, создает на странице дополнительное скрытое поле __PREVIOUSPAGE, которое и содержит информацию о состоянии элементов формы. Эта информация доступна странице-получателю через свойство PreviousPage.
void Page_Load(object sender, EventArgs e)
{ if (PreviousPage != null)
{ // Получаем объекты отправленной формы
TextBox txtFirstName =
(TextBox)PreviousPage.FindControl("txtFirstName");
TextBox txtLastName =
(TextBox)PreviousPage.FindControl("txtLastName");
// Используем данные
txtInfo.Text = "Добрый день, " + txtFirstName.Text + "!";
}
}
На уровне HTML кода, отправка данных другой форме выглядит следующим образом.
<form method="post" action="GetValues.aspx" id="frmTest">
<input type="submit" name="btnSend" value="Post Data"onclick="11-76359.php">⇐ Назад