Scaffolding
Scaffolding という機能により、さきほど定義したモデル(およびデータベースコンテキスト)を元に、コントローラとビューを自動生成することができます。
これにより提供される機能はいわゆる CRUD (Create, Read, Update, Delete) と呼ばれるものになります。
注意:Scafoolding が失敗する場合(2016/10/20追記)
Scaffolding が失敗する場合、一度プロジェクトのリビルドを実行してみてください。
Scaffolding によるコントローラとビューの生成
Controllers フォルダの右クリックメニューから [Add] - [Controller...] を選択。
[MVC5 Controller with views, using Entity Framework] を選択。
さきほど作成した Comment クラスおよび BbsDbContext クラスを入力し、Add を押します。
(このクラス名は途中まで打ち込めばあとは自動補完してくれるのでそれに従えば良いです)
いくつかのチェックボックスについて解説しておきます。
- Use async controller actions
- アクションを非同期にするかどうか
- Generate views
- ビューを生成するかどうか
- Reference script libraries
- 各ビューに必要であればJavaScriptを埋め込むかどうか(ポスト前の値検証等)
- Use a layout page
- ビューを単体で表示させるか、レイアウトに含める形で表示させるか
踏み込んだ説明は省きますが今回は(最低限必要なのは [Generate views] だけなのですが、後々の説明上の都合もあり)、
[Generate views], [Reference script libraries], [Use a layout page] の3つにチェックを付けて進めていきます。
~Scaffolding によるコントローラとビューの生成中~
これにより以下のファイルが作成されます。
実はもうこれだけで Comment データを CRUD する環境ができあがりました。
プロジェクトを実行し動作を確認してみましょう。
コメントの新規作成 (C = Create)
やや愚直ですが http://localhost:xxx/Comments/Create
を直接 URL 入力して呼び出します。
コメント作成画面が表示されました。
ユーザ名、本文、日時を入力してコメントを作成してみます。
コメント作成が完了し、コメント一覧が表示されました。
コメントの表示 (R = Read)
http://localhost:xxx/Comments
へのアクセスによりコメント一覧が表示されます。
各コメント行の [Details] リンクを押すと、
コメント詳細画面が開きます。今回は特段メリットは感じられないと思いますが、データのフィールド数が増えてくるとこういうページが役に立ちます。
コメントの変更 (U = Update)
コメントデータの変更を行ってみます。
一覧画面から [Edit] リンクを押してみます。
コメント編集画面が開きました。
適当に書き換えてみます。
一覧画面に戻り、本文が変更されたことが確認できました。
コメントの削除 (D = Delete)
コメントの削除動作を確認します。
一覧画面から [Delete] リンクを押します。
削除確認画面が開くので、さらにこの画面内の [Delete] リンクを押すと、
一覧画面に戻り、該当コメントが削除されたことが確認できました。
Scaffolding の動作確認おわり
以上、基本的なデータ操作 (CRUD = Create, Read, Update, Delete) が行えることが確認できました。
これが掲示板かというとまだ垢ぬけませんが、最低限の機能は提供されています。
次ページからは体裁を少しずつ整えていきます。