2012-08-03 3 views
1

5 단계 또는 6 단계가있는 응용 프로그램을 만들고 있습니다. 첫 번째 단계에서 나는 필요한 보고서를 선택하고 & 계속 ... 두 번째 단계로 이동합니다 ... 내 문제는 브라우저의 뒤로 버튼을 누르면 기능에 따라 결정됩니다. 나는 이전 페이지로 가야한다. 그리고 다시 을 누르면 두 번째로 내 홈페이지, 으로 이동해야하지만 이전 페이지로 리디렉션됩니다. 크롬 및 사파리를 제외한 모든 브라우저에서 작동합니다. 내가 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

하지만 문제가없는 나머지 브라우저에서 제대로 작동합니다. 오페라, 사파리 및 ie에 대한 지원이 있지만 크롬에 대한 지원이 추가되지 않은 backfix.js 파일을 사용했습니다. – Mythili

+0

물론 다른 브라우저에서도 정상적으로 작동합니다. 그것은 브라우저 특정 최적화입니다. – nunespascal

+0

조금 더 많은 정보를 잊어 버릴 수 있습니까? 브라우저가 이전 정보를 캐시해야하고 위의 기능도 작동해야합니다. – Mythili