3

私が理解している限り、Response.Redirect("http://stackoverflow.com");別のURLへのリクエストを開始するようにブラウザに指示します。

この結果の1つは、ブラウザがリダイレクトを「記憶」し、「戻る」を押すことができるようにすることです。

ただし、Response.Redirectブラウザが新しいウィンドウを開いたかのように、ブラウザの[戻る]ボタンを押すことができないWebサイトがあります。(とは異なり、閲覧履歴は忘れられません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. 「ブラウザの「戻る」ボタンを押す機能を無効にする」に関して、私が意味したのは、ボタンを押すことができないということです。新しいウィンドウを開いたときと同じです。ボタンは灰色で、クリックしてもまったく効果がありません。

更新2

これはIE6とIE8でテストされています。

4

2 に答える 2

0

問題はではありませんでしたResponse.Redirect();

OldPage.aspxを使用していたときに、アドレスバーに新しいURLを入力しました。ブラウザが新しいサイトをロードすると、戻るボタンが無効になります。

結論:NewPage.aspxへのリダイレクトではなく、OldPage.aspxに問題があります。

なぜこれが起こるのかはまだわかりませんが、これはまったく別の質問です。

于 2012-05-03T06:44:06.493 に答える
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.
        }
    }
于 2012-05-03T07:14:24.363 に答える