PROGRAM VISUALBASIC

ASP.NET(VB.NET) MVCモデル入門~起動画面を設定しよう

ビューのみ作成するとどうなるか?

前回の記事では、画面に「Hello World」を表示しました。
その際、Visual StudioはIndex.vbhmtlを開いた状態で、プログラムを実行していました。
それでは、新しくIndex2.vbhtmlというビューのみを作成して、それを開いた状態で、プログラムを実行するとどうなるでしょうか?

vbmvc2-1
実行結果

上図のようにエラーが発生してしまいます。
MVCモデルでは、ビューとコントローラーがセットになっており、ビューだけを作成しても画面は表示されません。
新しく作ったIndex2.vbhtmlを表示するには、HomeControllerにIndex2()という関数を作成する必要があります。

HomeControllerにIndex2()という関数を作成したら、Index2.vbhtmlを開いた状態で、プログラムを実行させてみましょう。

vbmvc2-2
実行結果

今度は、想定通りの画面が表示されました。

すべてのタブを閉じた状態でプログラムを実行させるとどうなるか?

それでは、Visual Studioのタブをすべて閉じた状態で、プログラムを実行させるとどうなるでしょうか?
答えは、Index.vbhtmlの「Hello World」が表示されます。
これは、App_Startフォルダ配下にあるRouteConfig.vbで設定しています。
15行目のdefaultsの引数に、.controller="Home"、.action="Index"が指定されています。
これはデフォルトで、HomeControllerのIndex()関数を起動するという意味になります。
デフォルトの起動画面を変更したい場合は、defaultsの引数に起動画面にしたいコントローラーと関数を設定します。

なお、プログラムを実行した時、常にデフォルトの起動画面を表示させたい場合は、ソリューションエクスプローラーのプロジェクト(今回の場合はTest1)にカーソルを合わせ、右クリックしてメニューの一番下にある「プロパティ」を選択します。
プロパティ画面の「Web」を選択し、「開始動作」の項目を確認します。

vbnet2-3

デフォルトでは、「現在のページ」が選択されていますが、これを「URL の開始」に変更し、「プロジェクトのURL」にあるURLをそのままコピーします。(ポート番号は環境によって変わります)
この設定をすることによって、例えば、Index2.vbhtmlを開いている状態でプログラムを実行しても、Index.vbhtmlの「Hello World」が表示されるようになります。

-PROGRAM, VISUALBASIC
-, , ,