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
?
未經測試,僅作爲註釋:'MasterPages'沒有'PreInit'事件,但是'ContentPages'。因此,您可以讓所有頁面從「Master-ContentPage」繼承並使用它的「PreInit」事件。 http://odetocode.com/code/450.aspx – 2012-03-09 15:19:38
@Tim鑑於你說得有多快,「MasterPages」沒有「PreInit」,主要問題的答案似乎是「不」。這是在MSDN或書中(我明顯沒有)或某處?沒有一個可靠的參考資料是什麼嘮叨我。 – aczarnowski 2012-03-13 19:00:48
[這是一個列表](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