「Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
現時点のMVCチュートリアルは、
- EntityにDataSet?、DataTable?を使用している。
- そのため、Model Binding + DataAnnotation?を使用していない。
と言った、少々、古いスタイルの実装となっています。
詳細 †
以下の様に、最近の一般的な実装に変更可能です。
変更内容 †
- Model Binding + DataAnnotation? の MVVMスタイルに変更します。
- 変更内容は、下記のそれぞれのディレクトリのDiffを確認して下さい。
- MVC_Sample_20181003
- MVC_Sample_20181003_poco
- MVC_Sample_20190627_mvvm
チュートリアル †
チュートリアルを遂行して出来上がったサンプル
EntityのPOCO化 †
POCO変換部品を使用して、DataSet?、DataTable?のEntityをPOCO化可能です。
Model Bindingの利用 †
EntityのPOCO化を行った後に、Model Bindingを行うよう、コードを変更可能です。
※ なお、ViewModel?にDataAnnotationすることで、単項目チェックも自動化可能です。
これについては、コチラのViewModel?ガチ実装が参考になります。
単方向と双方向バインディング †
- 単方向バインディングは、単に、
- クライアントから送信されてきたデータのキー名と、
- ControllerのAction Methodの引数名とが一致するキー値を
探して、バインドすると言う機能。
- 双方向バインディングを使用して、
Viewにバインドて、ViewからControllerにPOSTすると、
Web FormsのPostBack?のような動作を容易に実装可能。
双方向バインディングの実装方法 †
- ViewModel?を定義する。
- これをControllerからViewに渡して、Html.xxxxForでバインド。
- Viewから、ControllerへのPOSTをViewModel?で受ける。
属性(アノテーション)によって、容易に実装可能。
参考 †
マイクロソフト系技術情報 Wiki †