ASP.NET WEB FORMS предоставляет разработчикам превосходную модель разработки, управляемую событиями. Однако эта простая модель разработки приложения принесла нам некоторые небольшие проблемы. Например, в традиционном ASP-приложении вы можете легко передать значение или несколько значений со страницы через метод POST на другую страницу (request()/). request.form()/request.querystring()), реализовать его в ASP.NET с использованием того же метода немного затруднительно. Вот другие способы решить эту ситуацию. ASP.NET предоставляет нам три способа: один — использовать QueryString для передачи соответствующего значения, другой — передать соответствующее значение через переменную сеанса, а третий — реализовать его с помощью метода Server.Transfer.
1. Используйте строку запроса
Querystring — очень простой способ передачи значений. Его недостаток в том, что передаваемое значение будет отображаться в адресной строке браузера, и в этом методе невозможно передать объекты. Этот метод лучше всего использовать, если вы хотите передать не слишком важное значение или простое значение. Давайте воспользуемся небольшим примером для завершения работы по передаче значений. Шаги следующие:
1. Создайте веб-форму
2. Поместите кнопку1 в новую веб-форму и два поля TextBox1 и TextBox2.
3. Создайте код события клика для кнопки следующим образом:
Private void button_click (отправитель объекта, System.EventArgs e)
{
строковый URL;
url="webform2.aspx?name="+TextBox1.Text + "&Email="+TextBox2.Text;
Response.Redirect(url);
}
4. Создайте новую целевую страницу и назовите ее webform2.
5. Поместите две метки Label1 и Label2 в веб-форму2.
Добавьте следующий код в Page_Load веб-формы2:
частная пустота Page_Load (отправитель объекта, System.EventArgs e)
{
Label1.Text=Request.QueryString["имя"];
Label2.Text=Request.QueryString["Электронная почта"];
}
Запустите его, и вы увидите результаты после переноса.
2. Используйте переменные сеанса. Использование переменных сеанса для передачи значений — наиболее распространенный способ. Этот метод позволяет не только передавать значение на следующую страницу, но и перекрестно передавать его на несколько страниц, пока значение переменной сеанса не станет равным. удалена. Переменная исчезнет. Возьмем пример:
1. Создайте веб-форму
2. Поместите кнопку1 в новую веб-форму и два поля TextBox1 и TextBox2.
3. Создайте код события клика для кнопки следующим образом:
Private void button_click (отправитель объекта, System.EventArgs e)
{
Сеанс["Имя"]=TextBox1.Text;
Сеанс["Электронная почта"]=TextBox2.Text;
Response.Redirect("webform2.aspx");
}
4. Создайте новую целевую страницу и назовите ее webform2.
5. Поместите две метки Label1 и Label2 в веб-форму2.
Добавьте следующий код в Page_Load веб-формы2:
частная пустота Page_Load (отправитель объекта, System.EventArgs e)
{
Label1.Text=Session["Имя"].ToString();
Label2.Text=Session["Электронная почта"].ToString();
Session.Remove("Имя");
Session.Remove("Электронная почта");
}
Запустите его, и вы увидите результаты после переноса.
3. Используйте Server.Transfer
Хотя этот метод немного сложен, он все же является способом передачи значений на странице.
Возьмем пример:
1. Создайте веб-форму
2. Поместите кнопку1 в новую веб-форму и два поля TextBox1 и TextBox2.
3. Создайте код события клика для кнопки следующим образом:
частная пустота (отправитель объекта, System.EventArgs e)
{
Server.Transfer("webform2.aspx");
}
4. Создайте процесс для возврата кодов значений элементов управления TextBox1 и TextBox2 следующим образом:
общедоступная строка Имя
{
получить {вернуть TextBox1.Text;}
}
общедоступная строка Электронная почта
{
получить {вернуть TextBox2.Text;}
}
5. Создайте новую целевую страницу с именем webform2.
6. Поместите две метки Label1 и Label2 в веб-форму2.
Добавьте следующий код в Page_Load веб-формы2:
частная пустота Page_load (отправитель объекта, System.EventArgs e)
{
//Создаем экземпляр веб-формы
веб-форма1 wf1;
//Получаем созданный дескриптор
wf1=(webform1)Context.Handler;
Метка1.Текст=wf1.Имя;
Label2.Text=wf1.Email;
}
Эти три метода являются общими.