2012-08-03 86 views
1

我正在製作一個應用程序,其中可能有5或6個步驟。 在第一步中,我將選擇我需要的報告,並保存& continue..it會讓我第二步...像這樣... 我的問題是根據功能,當我點擊瀏覽器後退按鈕我需要去上一頁。 ,再次當我按它第二次它必須去我的主頁, 但它是重定向到前一頁。 它可以在所有瀏覽器上運行,除了Chrome和Safari瀏覽器。 我將我的reference..please代碼幫我解決這個..Chrome/Safari後退按鈕問題

protected void Page_Load(object sender, EventArgs e) 
{ 

    DisableHistory(); 
    lnkBackBrowse.Style["visibility"] = "hidden"; 
    if (Session["UserId"] != null) 
    { 
     if (Convert.ToInt32(Session["UserId"].ToString()) == 0) 
     { 
      TopNavigationMenu.Style["visibility"] = "hidden"; 
      NavigationMenu.Style["visibility"] = "hidden"; 

      if (!Request.Url.ToString().Contains("Home") && !Request.Url.ToString().Contains("SaveandLogout")) 
       Response.Redirect("Home.aspx"); 
     } 
     else 
     { 
      TopNavigationMenu.Items[0].Text = "Welcome :" + Session["UserName"].ToString(); 
      TopNavigationMenu.Style["visibility"] = "visible"; 
      NavigationMenu.Style["visibility"] = "visible"; 

      if (Session["FirstTimeLogged"] != null && Convert.ToBoolean(Session["FirstTimeLogged"]) == true) 
      { 
       TopNavigationMenu.Enabled = false; 
       NavigationMenu.Enabled = false; 

       if (!Request.Url.ToString().Contains("MyAccount")) 
        Response.Redirect("Home.aspx"); 
      } 
      else 
      { 
       GenerateLinks(Session["RoleId"].ToString()); 
       TopNavigationMenu.Enabled = true; 
       NavigationMenu.Enabled = true; 
       //TopNavigationMenu.Items[1].Text = "Support <img src='Images/bullet_arrow_down.png' alt='down' title='' />"; 

       if (Request.Url.ToString().Contains("Home")) 
        Response.Redirect("Default.aspx"); 

       if (!IsPostBack) 
       { 
        string strPrevPg = "", strCurrPg = ""; 
        if (Request.UrlReferrer != null) 
        { 
         strPrevPg = Request.UrlReferrer.AbsolutePath.ToString(); 
         strPrevPg = strPrevPg.Substring(strPrevPg.IndexOf("/", 1) + 1, strPrevPg.Length - (strPrevPg.IndexOf("/", 1) + 1)); 
         strPrevPg += Request.UrlReferrer.Query.ToString(); 
        } 
        strCurrPg = Request.Url.AbsolutePath.ToString(); 
        strCurrPg = strCurrPg.Substring(strCurrPg.IndexOf("/", 1) + 1, strCurrPg.Length - (strCurrPg.IndexOf("/", 1) + 1)); 

        bool bFlag; 
        bFlag = Convert.ToBoolean(Session["goBackPg"]); 

        if (Session["PrevPg"] != null) 
        { 
         if (strCurrPg == Session["PrevPg"].ToString()) 
         { 
          if (bFlag) 
          { 
           Session["CurrPg"] = strCurrPg; 
           Session["PrevPg"] = "Default.aspx"; 
           bFlag = false; 
           Session["goBackPg"] = bFlag; 
          } 
          else 
          { 
           Session["CurrPg"] = strCurrPg; 
           Session["PrevPg"] = strPrevPg; 
          } 
         } 
         else 
         { 
          Session["CurrPg"] = strCurrPg; 
          Session["PrevPg"] = strPrevPg; 
          bFlag = false; 
          Session["goBackPg"] = bFlag; 
         } 
        } 

       } 
      } 
     } 
    } 
    else 
    { 
     Response.Redirect("home.aspx"); 
    } 
} 

回答

0

這些瀏覽器顯示您緩存的內容,當你按返回鍵。

您可以調試並檢查,您的服務器沒有被擊中。此會話代碼將不起作用。你可以tell the browser not to cache the page。這樣,如果用戶想要回去,他將不得不重新加載內容。

+0

但它在其他瀏覽器中工作正常,沒有問題。我使用了backfix.js文件,它支持opera,safari和ie,但不支持chrome – Mythili 2012-08-14 10:37:14

+0

當然,它在其他瀏覽器中可以正常工作。這是一個瀏覽器特定的優化。 – nunespascal 2012-08-14 10:39:55

+0

您可以更多一點。瀏覽器需要緩存以前的信息,並且上述功能應該可以工作 – Mythili 2012-08-23 06:55:37