Вот что я нашел с помощью экспериментов.
При использовании Server.Transfer
весь жизненный цикл запроса не запускается снова.
Если вы написали свой собственный модуль, подключите его к жизненному циклу запроса и вызовите Server.Transfer
с этого модуля, остальная часть жизненного цикла запроса будет пропущена, и жизненный цикл страницы начнется немедленно.
После завершения жизненного цикла страницы передачи жизненный цикл запроса выбирает резервные копии с его событиями срыва. Обратите внимание, что HtppContext для событий срывания будет оригинальным, с которого вы перешли. То есть значения URL и QueryString будут такими же, как и исходный запрос, а не значениями URL и QueryString для страницы, на которую вы перешли.
Server.Transfer
изменяет объект HttpContext.Request
, чтобы содержать новые URL-адрес и информацию QueryString в течение жизненного цикла страницы для страницы, на которую вы перешли.
Если вы перейдете на ресурс, который не является страницей, а является текстовым (например, something.xml), содержимое этой страницы будет возвращено точно так же, как с его кодировкой, установленной в text/html.
Если вы перейдете на ресурс, который не является страницей и не основан на тексте (например, something.pdf), тогда будет выбрана ошибка HttpException. Это происходит, даже если вы определили пользовательский обработчик для этого ресурса.
Спасибо Rich, но ни один из этих ресурсов явно не говорит, что жизненный цикл запроса не запускается снова. Мне кажется, что ресурсы говорят только о том, что он не обрабатывается как второй запрос. –
Вы пытаетесь что-то избежать или что-то сделать? Что конкретно? – Rich
Нет, не было никакой конкретной цели. Я пересматривал старый код и перебегал через «Server.Transfer».Я никогда не видел его раньше, и вся документация, которую я мог найти на нем, была достаточно расплывчатой, так что я не знал, что именно делает. Прежде чем я внесла какие-либо изменения в код, я хотел убедиться, что знаю, что происходит. Я думал, что смогу получить быстрый ответ от сообщества, но когда я этого не сделал, я пошел дальше и сделал свои собственные экспериментальные исследования. Результаты этого исследования вы можете увидеть в моем ответе выше. –