В ASP.NET препятствует ли Response.Redirect событие Page_Load целевого URL? - PullRequest
0 голосов
/ 27 февраля 2012

В моем приложении ASP.NET Web Forms у меня есть две страницы MyPage.aspx и Login.aspx .

Когда пользователь находится в MyPage , и для входа требуется щелкнуть по

<a href="~/Login.aspx?ref=~/MyPage.aspx">login</a>

Пользователь переводится на Login.aspx , вводит имя пользователя и пароль и нажимает на кнопку логин . Обработчик события login_onClick выполняет некоторую операцию, а затем

 myUrl = Request.QueryString["ref"];
 Response.Redirect(myUrl); //myUrl = "~/MyPage.aspx"

Когда страница перенаправлена, событие Page_Load не вызывается (или, по крайней мере, его обработчик событий не выполняется). Это типичное (действительно странное) поведение Response.Redirect? Если это так, как я могу помешать этому поведению, чтобы выстрелить Page_Load?

PS: я пытался поставить Response.Cache.SetCacheability(HttpCacheability.NoCache) перед перенаправлением безуспешно

1 Ответ

0 голосов
/ 29 февраля 2012

Чтобы браузер не использовал кэшированную копию цели перенаправления, в вашем случае MyPage.aspx вам потребуется отключить кеширование и установить срок действия MyPage.aspx, не помещая его перед перенаправлением.Перенаправление фактически отправляет ответ обратно в браузер клиента, сообщая ему, чтобы он запросил другую страницу.Удаляя кеш прямо перед вызовом перенаправления, он фактически говорит браузеру не кэшировать текущую страницу, которая на тот момент все еще была Login.aspx.

...