アプリケーションに任意のページが読み込まれるたびにスクリプトを実行できるようにしたい。これを簡単に追加できる場所はありますか?または、ページを読み込むたびにコードを追加する必要がありますか?
5 に答える
次の3つのいずれかを実行できます。
アプリケーションでベースページを使用し、アプリケーションのすべてのページからベースページを継承します。ベースページのpage_loadイベントで、実行する必要があることを実行します。アプリ内の継承ページがpage_loadをオーバーライドする場合は、ベースページのpage_loadイベントを呼び出すようにしてください(通常は呼び出します)。また、page_loadは使いすぎているため、別のイベントがより適切な場合に備えて、すべてのページイベント(特にpage_prerender )を確認するための関連アドバイスを提供します。
global.asaxページで発生するイベントを使用します。これは、リクエストが受信されるたびに発生します。Application_BeginRequestイベントを確認してください。ただし、そこにはたくさんのイベントがあるので、別のイベントがあなたの状況により適している場合に備えて、それらすべてをチェックしてください。(通常のページイベントと同じように、常に同じイベントを使用するという悪い習慣を身に付けないでください。)
特にレイアウトに関連している場合は、毎回実行したいことがマスターページに表示される可能性があります。マスターページはかわいく見えますが、良いデザインで証明されています。共通の機能にマスターページのpage_loadイベントを使用する場合、各コンテンツページのpage_loadから呼び出す必要はありません。呼び出されたページのpage_loadイベントの後に毎回発生します。(最初はマスターページとベースページを混同しやすいので、これについて言及します。)
ファイルでBeginRequestイベントを使用できGlobal.asax
ます。
http://msdn.microsoft.com/en-us/library/system.web.httpapplication.beginrequest.aspx
HTTP Moduleを作成して登録することもできます。その利点は、それらが web.config に登録されているため、必要に応じて実行時に追加および削除でき、複数あることです。
System.Web.UI.Pageから派生した、ページの共通基本クラスを作成し、そこにOnLoadハンドラーにコードを追加できます。
PageAdapters を使用して、ASP.Net ページ ライフ サイクルの任意のメソッドをインターセプトすることにより、すべての aspx ページ リクエストにコードを挿入できます。
この記事は、その動作を理解するのに役立ちます: http://dotnet.org.za/hiltong/archive/2008/01/06/injecting-a-page-base-class-in-asp-net.aspx
よろしく。