HttpModule から ASP.NET ページを永続的に、または時々更新する必要があります。
ページを更新するための IUpdatablePage インターフェイスのコードを次に示します。
interface IUpdatablePage
{
void Update( string value );
}
HttpModule のコードは次のようになります。
void IHttpModule.Init( HttpApplication application )
{
application.PreRequestHandlerExecute += new EventHandler( application_PreRequestHandlerExecute );
}
void application_PreRequestHandlerExecute( object sender, EventArgs e )
{
this._Page = ( Page )HttpContext.Current.Handler;
}
void HttpModuleProcessing()
{
//... doing smth
IUpdatablePage page = this._Page as IUpdatablePage;
page.Update( currentVaue );
//... continue doing smth
}
ここでは:
- 現在のリクエスト ページを _Page に保存し、
- HttpModule での処理中に IUpdatablePage インターフェイスにアクセスする
- currentValue を渡して Update 関数を呼び出します。
これで、ページは Update 関数で値を取得します。
public partial class MyPage: System.Web.Page, IUpdatablePage
{
void IUpdatablePage.Update( string value )
{
// Here we need to update the page with new value
Label1.Text = value;
}
}
問題は、この値を Web フォーム コントロールに送信して、すぐにブラウザに表示する方法は何ですか?
UpdatePanel、Timer、iframe ブロック、javascript などを使用して、ページを更新する方法を考えます。
ページからのリクエストは、更新中に HttpModule で処理されていることに注意してください。コードサンプルを手伝ってください(私はウェブ初心者です)。