2012-05-01 3 views
2

Насколько я понимаю, Response.Redirect("http://stackoverflow.com"); сообщает браузеру инициировать запрос на другой URL-адрес.Response.Redirect() отключает обратную связь

Одним из результатов этого является то, что браузер «запоминает» перенаправление и позволяет нажать «назад».

Однако у меня есть сайт, на котором Response.Redirect отключает возможность нажатия кнопки «Назад» браузера, как если бы браузер открыл новое окно. (История просмотров не забыта, в отличие от Server.Transfer.)

Перенаправление, которое использовалось для работы должным образом в прошлом, поэтому я подозреваю, что проблема связана с сервером IIS (IIS7).

Заранее прошу прощения, если этот вопрос необходимо переместить на номер ServerFault.com.

ОБНОВЛЕНИЕ:

  1. Вот код:

    protected void btnClickMe_Click(object sender, EventArgs e) 
    { 
        // ... 
        // some server-side logic 
        // ... 
    
        Response.Redirect("NewPage.aspx?ProductID=" + idNum); 
    } 
    
  2. Что касается "отключает возможность нажать кнопку браузера 'Назад'", что я имел в виду, что кнопка не может быть нажата. То же, что и при открытии нового окна. Кнопка серая, и щелчок по ней абсолютно не влияет.

UPDATE 2:

Это было проверено с IE6 и IE8.

+2

Response.Redirect не имеет такого эффекта. Можем ли мы увидеть код? –

+0

Если U r перенаправляется на другой сайт, то он создаст новый сеанс –

+0

Просьба уточнить, что деталь * отключает возможность нажатия кнопки «Назад» браузера * - что происходит, когда вы это делаете? Вы попадаете на предыдущую страницу? –

ответ

0

Проблема была НЕ с Response.Redirect();.

Когда я был на OldPage.aspx, я ввел новый адрес в адресной строке. После того как браузер загрузил новый сайт, он отключил кнопку «Назад».

Заключение: Что-то не так с OldPage.aspx, а не с перенаправлением на NewPage.aspx.

Я до сих пор не знаю, почему это происходит, но это совершенно другой вопрос.

0
protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) //check if the webpage is loaded for the first time. 
     { 
      ViewState["PreviousPage"] = 
     Request.UrlReferrer;//Saves the Previous page url in ViewState 
     } 
    } 
    protected void btnBack_Click(object sender, EventArgs e) 
    { 
     if (ViewState["PreviousPage"] != null) //Check if the ViewState 
         //contains Previous page URL 
     { 
      Response.Redirect(ViewState["PreviousPage"].ToString());//Redirect to 
     //Previous page by retrieving the PreviousPage Url from ViewState. 
     } 
    } 
Смежные вопросы