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。

このブログの人気の投稿

1月19日(月)1コマ目

10月27日(月)1コマ目

1月26日(月)1、2コマ目