В чем разница между следующими методами передачи страниц
В чем разница между следующим:
- Server.Transfer?
- Response.Redirect?
- 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, куда нужно перейти при нажатии на клиенте. Это не требует дополнительной поездки туда и обратно при информировании клиента. Если вы можете использовать этот метод, он, как правило, предпочтительнее других вариантов.
Server.Transfer:
Переносит запрос с одной страницы на другую на сервере. например, запрос браузера для /page1.aspx
Запрос приходит на страницу 1, где вы выполняете Server.Transfer("/page2.aspx"), поэтому запрос переходит на страницу 2. И страница 2 возвращается в ответ, но в адресной строке браузера по-прежнему отображается URL-адрес
/page1.aspx
Response.Redirect
Это заявление говорит браузеру запросить следующую страницу. В этом случае адресная строка браузера также изменяется и показывает URL новой страницы
PostBackUrl
Вы можете упомянуть это на кнопках или кнопках ссылок. Это отправит форму на предоставленную страницу. Это похоже на:
<form method="post" action="/page2.aspx">