ASP.NETとC#でメッセージボックスを表示する方法

メッセージボックスはコーディング最中の動作確認や、ユーザーへの情報通知など、多様な使い方があります。言語の違いによって、実装方法は多少異なりますが、どの言語でも似たような機能が備わっていることから、使用頻度の高さがうかがえるでしょう。
- PG
- メッセージボックスをASP.NETで使いたいんですけど、どうやって実装するんですか?
- PL
- ASP.NETでは、厳密にメッセージボックスは使用できないんです……しかし、いくつか方法があるようなので見ていきましょう。
この記事でわかること
ASP.NETでMsgBoxは使用できない
サーバーサイドの言語であるASP.NETでは、2019年現在MsgBoxを利用することはできません。ただし、JavaScriptを併用することによりMsgBoxと同等の動作をさせることは可能です。その場合はページ読み込み時のonLoadイベントのタイミングで起動することになります。そもそも、サーバーサイドではメッセージボックスを使用して表示する意味があまりないため、クライアントサイドの処理で実行することが一般的です。
ClientScript.RegisterClientScriptBlockを使用する方法
ASP.NETではイベントハンドラによるタイミングで、任意のJavaScriptを実行させることができます。ClientScript.RegisterClientScriptBlockは、ブラウザに表示される前のタイミングで実行させるイベントハンドラです。これと紐づけたJavaScriptにメッセージボックスを表示する処理を記述すれば、ASP.NETでメッセージボックスを表示させることができます。また、画面表示が終わった後でのタイミングであれば、ClientScript.RegisterStartupScriptを利用すると良いでしょう。
1 2 3 4 5 6 |
protected void Button_Event_Test(object sender, EventArgs e) { string testScript = "alert('RegisterClientScriptBlockのスクリプトです。');"; ClientScript.RegisterClientScriptBlock(this.GetType(), "key", testScript, true); } |
このコードではボタンイベントにより、画面表示前にスクリプトが実行され、メッセージボックスが表示されます。
- PG
- ASP.NET自体でメッセージボックスは使えないんですね。
- PL
- そうですね。代替方法としてJavaScriptを併用する方法がよく使われているので、実行タイミングなどをよく理解して使っていくことをおすすめします。
イベントハンドラとJavaScriptをうまく利用する
ASP.NETではC#の記述によるメッセージボックスは使用できませんが、JavaScriptをうまく併用していくことで、メッセージボックスと同等の表示を行うことが可能です。ただし、あくまでもクライアントサイドでの処理であることを理解しておく必要があり、サーバーサイドの処理で使うことはできないということを留意しておきましょう。