Отправка данных формы другой странице 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">⇐ Назад

  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 181920
  • 21
  • 22
  • Далее ⇒
  •