В чем разница между следующими методами передачи страниц

В чем разница между следующим:

  1. Server.Transfer?
  2. Response.Redirect?
  3. PostBackUrl?

Когда я должен решить, какой?

3 ответа

Решение

Server.Transfer говорит ASP.NET перенаправить обработку на другую страницу в том же приложении. Это происходит полностью на стороне сервера. Это более "эффективно", так как это происходит на стороне сервера, но у этого метода есть некоторые ограничения. Ссылка ниже описывает некоторые из них.

Response.Redirect фактически отправляет код состояния HTTP 302 обратно клиенту в ответе с другим местоположением. Затем клиент отвечает за отслеживание нового местоположения. Здесь происходит еще одно путешествие туда и обратно.

PostBackUrl это не "метод передачи", а скорее свойство, которое сообщает браузеру, на какой URL отправлять форму. По умолчанию форма отправляется обратно на сервер.

Вот хорошая ссылка: http://haacked.com/archive/2004/10/06/responseredirectverseservertransfer.aspx

Server.Transer() работает на стороне сервера. Он ответит клиенту с страницей, отличной от запрашиваемой клиентом. Если клиент обновляет (F5), он обновит исходную страницу.

Response.Redirect() отвечает клиенту, что он должен перейти на другую страницу. Для этого требуется дополнительная передача туда и обратно, но клиент будет знать о перенаправлении, поэтому F5 запросит страницу назначения.

PostbackUrl это свойство, указывающее элементу управления ASP, куда нужно перейти при нажатии на клиенте. Это не требует дополнительной поездки туда и обратно при информировании клиента. Если вы можете использовать этот метод, он, как правило, предпочтительнее других вариантов.

  1. Server.Transfer:

    Переносит запрос с одной страницы на другую на сервере. например, запрос браузера для /page1.aspx

    Запрос приходит на страницу 1, где вы выполняете Server.Transfer("/page2.aspx"), поэтому запрос переходит на страницу 2. И страница 2 возвращается в ответ, но в адресной строке браузера по-прежнему отображается URL-адрес /page1.aspx

  2. Response.Redirect

    Это заявление говорит браузеру запросить следующую страницу. В этом случае адресная строка браузера также изменяется и показывает URL новой страницы

  3. PostBackUrl

    Вы можете упомянуть это на кнопках или кнопках ссылок. Это отправит форму на предоставленную страницу. Это похоже на:

    <form method="post" action="/page2.aspx">
    
Другие вопросы по тегам