我的母版页:
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!我该如何解决这个问题?
答案 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());
}