ASP.net master page/content page simple design problem
-
27-10-2019 - |
Question
My master page:
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());
}
This outputs 'True', we are logged in.
On my content page I do:
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("CONTENT:" + Master.IsLoggedIn.ToString());
}
But this outputs 'False'.
So the actual page output is:
Content:False
Master:True
On my content page I need to redirect if the user is logged in, but this value is always false from the content pages point of view! How can I resolve this?
Solution
Content Page load event occurs before Master Load (from here). So you probably need to change the logic, and maybe call some content page's methods from master Page_Load
. Or set IsLoggedIn
inside Master Init event handler.
OTHER TIPS
Change Master Page_Load
to Page_Init
, this will force it to execute before the content page.
The master page is called after your code for Page_Load(). Try this:
Protected void Page_Load(object sender, EventArgs e)
{
base.Page_Load(sender,e);
Response.Write("CONTENT:" + Master.IsLoggedIn.ToString());
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow