日期:2014-05-18  浏览次数:20568 次

关于母板页+框架的跳转
我的网站根目录下面有一个Iframe_right.master母板页。其中有以下代码
HTML code

<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>


后台部分
C# code

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页面)?如果不行,有没有其它的代替方案?谢谢!

------解决方案--------------------
Response.Write("<script>top.location='" + Page.ResolveUrl("~/Login.aspx") + "'</script>");
转绝对地址即可