Перемещение между страницами в ASP.NET

ASP.NET   19 февраля 2012  Автор статьи:  

Очень часто встает проблема перемещения пользователя с одной страницы на другую. Для решения данного затруднения существует класс HTTPResponse. Он предоставляет набор методов для перенаправления пользователей на другую страницу. Начнем рассмотрения класса HTTPResponse с самого популярного метода Redirect. Преимущество данного метода состоит в том, что у вас нет никакого ограничения куда переадресовывать. Таким образом вы можете перебросить пользователя хоть на другой сайт. Приведем небольшой пример:

Response.Redirect("");// переадресуем пользователя на другой сайт
Response.Redirect("Default.aspx");// перенаправляем на другую страницу сайта в текущем каталоге
Response.Redirect("~/Admin/Default.aspx");// перемещение пользователя в другой каталог сайта

Недостатки данного метода заключается в том, что происходит полный цикл отправки страницы, из — за этого скорость работы сайта может быть снижена. Рассмотрим перегрузку Redirect(). Данный метод принимает на вход два параметра: адрес ссылки, как и в рассматриваемых выше примерах,а второй параметр указывает, продолжит ли исполняться код страницы.

Response.Redirect("", true);// код, написанный ниже не выполнится
int a = 1;

Рассмотрим другой способ перемещения между страницами. Метод Transfer служит для перемещения пользователя внутри сайта. После исполнения Transfer в адресной строке останется предыдущий url. Это может вызвать ряд проблем связанных с тем, что браузер не знает, что показывает уже другую страницу.

//нахожусь на странице cybern.ru
Server.Transfer("/wp-admin");// Страница меняется, а url остается.

Данные методы используются не для постоянного перемещения, потому что они возвращают поисковой системе код 301( временное перенаправление). Для того, чтобы отдавать поисковому роботу код 302 используйте похожий метод:

Response.RedirectPermanent("/wp-admin");

Научиться программировать

  • на Delphi

  • на Java

  • на C++