我的网站根目录下面有一个Iframe_right.master母板页。其中有以下代码<div id="welcome">
    <asp:Label ID="lblUser" CssClass="roleCss" runat="server" Text=""></asp:Label>
    <asp:LinkButton ID="lbtnExit" CssClass="exit" Text="退出系统" runat="server" 
         onclick="lbtnExit_Click"></asp:LinkButton>
</div>
<div id="masterContent">
    <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
        
    </asp:ContentPlaceHolder>
</div>后台部分protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Session["user"] != null)
            {
                lblUser.Text = "欢迎您!" + Session["user"].ToString();
            }
            else
            {
                lblUser.Text = "您还没有登录!";
                lbtnExit.Text = "登录";
            }
        }
    }
    /// <summary>
    /// 退出系统
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void lbtnExit_Click(object sender, EventArgs e)
    {
        Session.Clear();
        //因为有框架,所以用JS跳转
        Response.Write("<script>this.parent.location='Login.aspx'</script>");//Login.aspx也位于网站根目录下
    }问题是,我现在网站的根目录下有一个文件夹user,里面有一个页面a.aspx,而且引用了Iframe_right.master母板页。但在a.aspx页面点击“退出系统”,显然this.parent.location='Login.aspx'跳转不成功。要变成this.parent.location='../Login.aspx'才行。但我可能在其它文件夹的页面还会用到这个母板页,请问能不能实现我这个需求(跳转到Login.aspx页面)?如果不行,有没有其它的代替方案?谢谢!

解决方案 »

  1.   

    本帖最后由 net_lover 于 2012-03-31 19:28:14 编辑
      

  2.   

    也可以这样写
    protected void lbtnExit_Click(object sender, EventArgs e)
        {
            Session.Clear();
            //因为有框架,所以用JS跳转
            Response.Redirect("~/Login.aspx");
        }
    Login.aspx里面加一段<script>
    if(window!=top) top.location.href=window.location.href;
    </script>也可以的
      

  3.   

    用~/login.aspx代替login.aspx这个跳转的路径试试
      

  4.   


    你的方法可以跳出来,我说的是【Steven-徐】,呵呵~
    顺便请教一下,那个JS什么意思?为什么是放在Login.aspx页面的
      

  5.   

    那段js就是说,如果login.aspx页面嵌套在了别的窗口中了,就跳到最顶层窗口
      

  6.   


    可是我的login.aspx页面没有嵌套啊,只是其它页面(例如a.aspx)用到了Iframe_right.master母板页,a.aspx才放到一个框架中。我要从a.aspx退出框架到login.aspx。别见笑,现在还不太理解~
      

  7.   

    我是要你把你自己原来写的login.aspx的路径换成~/login.aspx。
    不是要你把孟老师代码里面的换了。
      

  8.   


    嗯,试过了,跳不出来。Response.Write("<script>this.parent.location='~/Login-3-23.aspx'</script>");//因为这用到JS,这样写地址栏后半部分会变成/~/Login.aspx
      

  9.   

    后台:Response.Redirect("~/Login.aspx");js:
    用完整路径:比如 http://www.xxx.com/Login.aspx
      

  10.   

    这个是可以,但我的网站还没配置IIS,用VS端口,隔一段时间变一下,不方便。
      

  11.   

    本帖最后由 net_lover 于 2012-04-01 15:13:32 编辑
      

  12.   


    嗯~HTML没有这个的。谢谢!给你结帖了~