我希望能夠全局獲取對當前請求的Page
對象的引用,所以我添加了Global.asax文件。Global.asax中的ASP.NET請求頁面
有沒有辦法做到這一點?我認爲這與Application_BeginRequest
事件有關。
我希望能夠全局獲取對當前請求的Page
對象的引用,所以我添加了Global.asax文件。Global.asax中的ASP.NET請求頁面
有沒有辦法做到這一點?我認爲這與Application_BeginRequest
事件有關。
創建一個類,它是Page
一個子類,做什麼你希望並將此子類用作所有頁面的基本類型。
public class MyPage : Page
{
//... override whatever you want, add functionality, whatever
}
所有其他網頁:
public class Index : MyPage
{
// Automatically get new behaviour
}
您必須使用http模塊來捕獲應用程序中每個頁面的每個請求,並根據請求執行任何您想要的操作。
您可以使用http模塊在請求生命週期的任何階段捕獲請求。 –
var page = HttpContext.Current.Handler as Page
if(page != null) /// do something with page
的PreRequestHandlerExecute應罰款爲您的需要(如果你不喜歡寫自己的HttpModule,這實際上是很容易的)
當前處理程序在請求生命週期的這一點似乎爲空。 – StriplingWarrior
嘗試PreRequestHandlerExecute,正如MAN建議 –
您可以從Global.asax的訪問當前處理器(頁),而不是從任何stage of the request life cycle。即它是不可能的BeginRequest,但它的PreRequestHandlerExecute期間是可能的:
void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{
var page = (Context.Handler as System.Web.UI.Page);
}
注意頁面可能依然爲空,如果處理不是頁面。另外,我不確定你的方法是否正確。也許你應該更詳細地解釋你想要嘗試什麼?
是的,Oded的建議看起來似乎會更好。 – Jesse
爲什麼?在你想要做的事情中必須有更好的方法 –
你想用這樣的參考做什麼? – Oded
在任何給定的頁面請求中,我需要一個當前頁面的句柄來存儲在靜態類中。這個類使用頁面引用來做一些服務器端的IO。 – Jesse