2011-03-20 77 views
1

我的母版頁:ASP.net母版頁/內容頁簡單的設計問題

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

    } 

這個輸出「真」,我們都記錄在

在我的內容頁我做:

protected void Page_Load(object sender, EventArgs e) 
{ 

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

但是這輸出'假'。

所以實際頁面輸出爲:

Content:False 
Master:True 

在我的內容頁,我需要,如果用戶登錄重定向,但該值始終從內容看網頁點假的!我該如何解決這個問題?

+0

解決,改變主頁page_init的作品。 – 2011-03-20 16:45:22

回答

3

內容頁面載入事件發生在主載入之前(從here)。因此,您可能需要更改邏輯,也可以從主Page_Load調用一些內容頁面的方法。或者在Master Init事件處理程序中設置IsLoggedIn

+0

謝謝,init沒有工作,因爲它爲其他一些邏輯做了同樣的事情,但模塊化它並在主函數中放入一些邏輯似乎解決了這個問題。 – 2011-03-20 17:02:06

1

母版頁在您的Page_Load()代碼後被調用。試試這個:

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

如果它從未被調用,那麼它現在如何輸出'主:真'? – David 2011-03-20 16:38:07

+0

對不起,這不起作用。此外,我認爲它正在加載,因爲它正在得到一切正常,但它只是以錯誤的順序加載 – 2011-03-20 16:42:14

+0

更改主page_load爲page_init似乎強制它加載第一個工作。 – 2011-03-20 16:44:10

2

更改主文件Page_LoadPage_Init,這將強制它在內容頁面之前執行。