現在要求されているPage
オブジェクトへの参照をグローバルに取得できるようにするため、Global.asaxファイルを追加しました。ASP.NETがGlobal.asaxでリクエストしたページ
これを行う方法はありますか?私はそれがApplication_BeginRequest
イベントと関係があると考えています。
現在要求されているPage
オブジェクトへの参照をグローバルに取得できるようにするため、Global.asaxファイルを追加しました。ASP.NETがGlobal.asaxでリクエストしたページ
これを行う方法はありますか?私はそれが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
(あなたは空想実際には非常に簡単です、あなた自身のHttpModuleをし、書いていない場合)PreRequestHandlerExecuteがあなたの目的のために問題ないはず
現在のハンドラは、要求ライフサイクルのこの時点ではnullのようです。 – StriplingWarrior
MANのようにPreRequestHandlerExecuteを試してください –
あなたは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);
}
なお、ページはまだ、nullの場合もあります。また、あなたのアプローチが正しいかどうかはわかりません。たぶん、あなたがしようとしていることをもっと詳しく説明する必要がありますか?
ええ、オデッドの提案はうまくいくようです。 – Jesse
なぜですか?あなたがやろうとしていることでより良い方法があるはずです –
そしてそのようなリファレンスで何をしたいですか? – Oded
任意のページリクエストでは、現在のページを静的クラスに格納するためのハンドルが必要です。このクラスは、ページ参照を使用してサーバーサイドIOを実行します。 – Jesse