10月20日(月)1コマ目
今日、やったこと
ViewModelをつかう
今日のホワイトボード
コントローラーからビューにデータを渡す方法
今までは ViewData を使っていた。
ViewDataは
- キーを間違えると実行時エラー
- キャストを間違えると実行時エラー
のように、実行時エラーが発生する可能性がある。
※実行しないとエラーかどうかがわからないのはやめたい
![]() |
| 図 ViewDataの問題点 |
そこで、 ViewModel を使う。
ViewModelはコントローラーからビューに渡すデータをひとまとめにできるクラス。
ビュー側では
- @modelでビューモデルの型を指定する
- Modelでビューモデルにアクセスできる
![]() |
| 図 ViewModel |
前回の検索アプリケーションから改造したファイルをあげておきます。
[モデル]Models/SearchViewModel.cs
コントローラーからビューに渡すデータをまとめて扱うためのクラス。
[コントローラー]Controllers/SearchController.cs
ビューモデル(SearchViewModelクラス)のインスタンスを、ビューに渡すには retuen View( model ) のように、引数で渡す。
[ビュー]Views/Search/Index.cshtml
@modelでコントローラーから渡されるビューモデルの型を指定する。
Modelでビューモデルのインスタンスにアクセス可
練習問題のヒント
選択リストに 「選択してください」 を追加する。
![]() |
| 図 選択リストに「選択してください」を追加 |
次回は
練習問題5の解説と新ネタLINQ。


