当前位置:编程学习 > C#/ASP.NET >>

咨询一个登录跳转后如何刷新母版页的问题,请高手解答

实际我不是用母版页做的,就是一个mainPage.aspx页面。mainPage.aspx前端代码和后台代码如下:
前端代码:<span id="showUser" runat="server">
后台代码:
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["userID"] == null)
        {
            showUser.InnerHtml = "<A class=black_b href='javascript:;' onclick=iframeConnect('frame_content','login.aspx')>用户登录</A>  |  <A class=black_b href='#'>忘记密码</A>  | <A class=black_b href='#'>联系我们</A>";
        }
        else
        {
            showUser.InnerText = "用户你好";
        }
    }

然后在mainPage.aspx里面嵌入了一个Iframe,src是writeMessage.aspx.
点击writeMessage后,如果用户还没有登录,就直接跳转到login.aspx里,如果用户登录成功了,在直接回到writeMessage.aspx里面。现在的问题是在成功登录跳转后,如何将mainPage.aspx页面也刷新,让其显示showUser.InnerText = "用户你好"?

login.aspx主要代码
Session["userID"] = "abvc";
if (!string.IsNullOrEmpty(Request.QueryString["url"]))
{
   //跳转到登录前页面   
   string returnUrl = Request.QueryString["url"].ToString();
   Response.Redirect(Server.UrlDecode(returnUrl));
}

另外写了一个类,让它继承于System.web.UI.Page
    protected override void OnInit(EventArgs e)
    {
        string returnUrl = Request.Url.AbsoluteUri;//获取当前url地址    
        if (base.Session["userID"] == null || base.Session["userID"].ToString().Equals(""))
        {
            Response.Redirect("login.aspx?url=" + Server.UrlEncode(returnUrl) + "");
        }
    } --------------------编程问答-------------------- 要在writeMessage.aspx页面访问mainPage.aspx页面的窗体对象可以用window.parent --------------------编程问答--------------------
引用 1 楼 yumenjianke 的回复:
要在writeMessage.aspx页面访问mainPage.aspx页面的窗体对象可以用window.parent

下面的代码可以实现mainPage.aspx的刷新
window.parent.location.reload(true);
--------------------编程问答--------------------

楼主,你这个要求太难搞了,再说了,按楼上的说法,你得每一个子页面都调用window.parent.location.reload(true);   除非你只有writeMessage.aspx页面,不然,要是在别的页面出现登录超时的情况,一样会重新登录,所以,这种做法不可取。

有另一种方式,就是你在mainPage.aspx页面里放一个JS定时器,用ajax方式去查看用户是否登录,发现登录后,直接注销该定时器,JS更新那个控件显示用户。




showUser.InnerText = "用户你好"; // 我看你这里,有点无语,假如,你只想在这个控件上显示 “用户你好” 这四个字,那么,你干脆直接显示,不管对方有没有登录呢,反正我就显示这几个字,你不登录,我跳到登录页面,你登录完了,这4个字正好有用,你登录不成功,那还得继续跳到登录页面,反正你也不会注意到这个字吧?

--------------------编程问答-------------------- 其实你这个登陆跳转,一开始点击登陆的时候就应该直接用top.location.href把外面的页面搞成login.aspx登陆页的,话说你这个用户提示好奇怪,为毛不用ascx
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,