C# PROGRAM

ASP.NET(C#) MVCモデル入門~入力値をViewModelで受け取り画面に表示

入力項目を作成してViewModelで値を受け取り画面に表示する

今回は、前回作成したプログラムに新しく入力用のビューを追加して、テキストボックスに入力した値を画面に表示してみましょう。

コントローラーに入力用メソッドを追加

HomeController.cs に、入力用ビューを呼び出すメソッド「Input()」を追加します。
Input()メソッド側では、ViewModel をインスタンス化する必要はありません。
そのまま Inputビューを呼び出します。
また、入力用ビューから Index()メソッドに HomeViewModel が渡されますので、そのまま Indexビューに HomeViewModel を渡します。

入力用ビューの作成

入力項目を配置するビュー(Input.cshtml)を作成します。
1行目でビューモデルの型を指定して、HTMLヘルパーの Html.TextBoxFor()メソッドで入力してた値を格納します。
テキストボックスには、Html.TextBoxFor()メソッド以外にも Html.TextBox()メソッドがありますが、渡されたモデルに関連付けたい場合は、Html.〇〇For()のように「For」が付いたメソッドを使用します。
Html.TextBoxFor()メソッドの詳しい内容は、以下のマイクロソフト公式サイトを参照してください。


また、Formタグを作成する Html.BeginForm()メソッドは、以下のように @usingブロックと共に使います

@using (Html.BeginForm("メソッド名", "コントローラー名", Formメソッド)) { Formの内容 }

第3引数の「Formメソッド」は、以下のように GET か POST を指定します。

FormMethod.Get
または
FormMethod.Post

Html.BeginFrom()メソッドの詳しい内容は、以下のマイクロソフト公式サイトを参照してください。

ここでは、Form の宛先を Homeコントローラーの Index()メソッドにしています。

このビューでは、Pタグにマージンを設定して、行間を少し開けています。

プログラムの実行

プログラム起動時に、入力用ビューが最初に表示されるように、「Program.cs」を以下のように修正します。

プログラムを実行すると、最初に入力画面が表示されます。

cs-mvc-6-1

入力項目に以下の値を入力して、「送信」ボタンを押下します。

cs-mvc-6-2

入力された値が、画面に表示されます。

cs-mvc-6-3

-C#, PROGRAM
-,