2012-08-03 110 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