2012-03-09 28 views
0

根據配置設置,我想引導用戶訪問「本網站目前處於離線狀態」頁面。母版頁似乎是這樣做的通用場所。我原來使用這個代碼:是否有執行MasterPage Page_PreInit()的任何條件?

MyConfig config = new MyConfig(); 

protected void Page_PreInit(object sender, EventArgs e) 
{ 
    if (config.RefuseRequests) 
     Response.Redirect("Offline.aspx"); 
} 

這裏的一個斷點是從來沒有命中。

經過一番挖掘,我遇到了http://msdn.microsoft.com/en-us/library/dct97kc3.aspx這似乎是說一個主人Page_PreInit永遠不會被調用。我讀的是對的嗎?

上述代碼在Visual Studio中不顯示錯誤,它似乎是加載流程中的一個有用步驟。是否有任何條件可以執行主頁面Page_PreInit

+0

未經測試,僅作爲註釋:'MasterPages'沒有'PreInit'事件,但是'ContentPages'。因此,您可以讓所有頁面從「Master-ContentPage」繼承並使用它的「PreInit」事件。 http://odetocode.com/code/450.aspx – 2012-03-09 15:19:38

+0

@Tim鑑於你說得有多快,「MasterPages」沒有「PreInit」,主要問題的答案似乎是「不」。這是在MSDN或書中(我明顯沒有)或某處?沒有一個可靠的參考資料是什麼嘮叨我。 – aczarnowski 2012-03-13 19:00:48

+0

[這是一個列表](http://msdn.microsoft.com/en-us/library/dct97kc3.aspx)MasterPage的事件和[這是一個不錯的列表](http://msdn.microsoft.com/zh-cn/ -us/library/dct97kc3.aspx)事件發生的順序。我認爲它沒有'PreInit',因爲它必須被編譯併合併到ContentPage中。如果它有一個'PreInit',ContentPage的PreInit [可以改變分配的主](http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx)會導致不可預知的行爲,因爲主的'PreInit '會在'Master'改變之前發生。 – 2012-03-13 19:12:58

回答

1

儘管信息沒有像我想要的那樣清楚地表達出來,但實際的答案似乎是「不會,主人Page_PreInit()永遠不會被擊中。」

相關問題