导航回来&重新加载页面

时间:2011-04-30 14:24:00

标签: c# asp.net

我的ASP.NET(Framework 4)Web项目中的导航存在问题。我在主页面上有一个登录字段。主页还包含一个ContentPlaceHolder,它动态地包含其他aspx页面。我从页面“a”开始并导航到页面“b”。当我登录页面“b”时,导航中的其他节点变得可见。现在我的问题:当我从浏览器推送“历史回复”按钮时,附加节点在页面“a”上消失。

我发现页面“a”没有再次重新加载,因为它是从浏览器的缓存中加载的。

我尝试使用LinkBut​​ton(Zurueck):

protected void Page_Load(object sender, EventArgs e)
{
    Zurueck.Attributes.Add("onClick", "javascript:history.back(); return false;");
}

我还在C#源代码和aspx源代码中尝试了缓存限制:

protected void Page_Load(object sender, EventArgs e)
{
    Response.Cache.SetCacheability(HttpCacheability.NoCache);

    if (Session["sessionKuerzel"] != null)
    {
        view = (TreeView)this.FindControl("TreeViewVerwaltung");
        view.Visible = true;
        login = (Button)this.FindControl("Senden");
        login.Visible = false;
        logout = (Button)this.FindControl("Logout");
        logout.Visible = true;
        benutzerrecht = (string)(Session["sessionRecht"]);
        if (benutzerrecht.Equals("Administrator")){
            view.Nodes[0].ChildNodes[1].SelectAction = TreeNodeSelectAction.Select;
        }
        else{
            view.Nodes[0].ChildNodes[1].SelectAction = TreeNodeSelectAction.None;
        }
        view.Visible = true;
    }          
}

Site.Master.aspx(负责人):

<meta http-equiv="cache-control" content="no-cache"/>
<meta http-equiv="expires" content="0"/>

但是所有这些替代方案都不适用于Mozilla FireFox。

如何导航回历史记录&amp;再次重新加载页面?任何想法或解决方案?

1 个答案:

答案 0 :(得分:5)

试试这个

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Response.Buffer = true;
            Response.CacheControl = "no-cache";
            Response.AddHeader("Pragma", "no-cache");
            Response.Expires = -1441;
        }


    }