1

我的母版页:

public partial class MasterPages_Main : System.Web.UI.MasterPage
{
    public bool IsLoggedIn;

    protected void Page_Load(object sender, EventArgs e)
    {

        // Check login
        LoggedInUser ThisUser = new LoggedInUser();
        IsLoggedIn = ThisUser.IsLoggedIn;

        Response.Write("Master" + IsLoggedIn.ToString());

    }

这输出'True',我们已登录。

在我的内容页面上,我这样做:

protected void Page_Load(object sender, EventArgs e)
{

    Response.Write("CONTENT:" + Master.IsLoggedIn.ToString());
}

但这会输出“假”。

所以实际的页面输出是:

Content:False
Master:True

在我的内容页面上,如果用户已登录,我需要重定向,但从内容页面的角度来看,此值始终为 false!我该如何解决这个问题?

4

3 回答 3

3

内容页面加载事件发生在主加载之前(从这里)。因此,您可能需要更改逻辑,并可能从 master 调用一些内容页面的方法Page_Load。或IsLoggedIn在 Master Init 事件处理程序中设置。

于 2011-03-20T16:45:37.827 回答
2

将Master 更改Page_LoadPage_Init,这将强制它在内容页面之前执行。

于 2011-03-20T16:45:51.197 回答
1

在您的 Page_Load() 代码之后调用母版页。试试这个:

Protected void Page_Load(object sender, EventArgs e)
{
    base.Page_Load(sender,e); 
    Response.Write("CONTENT:" + Master.IsLoggedIn.ToString());
}
于 2011-03-20T16:35:35.547 回答