ASP.net主页/内容页面简单设计问题

时间:2011-03-20 16:32:47

标签: c# asp.net master-pages public content-pages

我的母版页:

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());
}

但这会输出'False'。

所以实际的页面输出是:

Content:False
Master:True

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

3 个答案:

答案 0 :(得分:3)

内容页面加载事件发生在主加载之前(来自here)。所以你可能需要改变逻辑,也许可以从master Page_Load调用一些内容页面的方法。或者在Master Init事件处理程序中设置IsLoggedIn

答案 1 :(得分:2)

将主Page_Load更改为Page_Init,这会强制它在内容页面之前执行。

答案 2 :(得分:1)

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

Protected void Page_Load(object sender, EventArgs e)
{
    base.Page_Load(sender,e); 
    Response.Write("CONTENT:" + Master.IsLoggedIn.ToString());
}