私はASP.NET MVCを使用してWebアプリケーションを開発しています。私はViewBagの使用を避けようとしていました。したがって、ドロップダウンを作成して一般的にデータを渡すビューモデルはほとんど作成しませんでした私は私の意見が必要です。同時に、データバインディングをクリーンに保ち、バインドされないプロパティ(包含/除外属性を使用せずに)を避けたいと思います。明らかにリターンモデルがその目的に最適であると言われています。1つのビューの2つのViewModel
したがって、1つのビューに対して2つの独立したモデルを作成すると悪い考えですか? 1つはすべてのデータを表示する必要があり、もう1つはフォームからのフィールドのみを使用するか、またはこれが実質的に過剰な形式ですか、私は自分のデザインの変更を再考すべきですか?
編集:簡単な例私は
class ViewModelA{ // passed to the view and then bound to when form is submitted
List<KeyValuePair<int, string>> DropDownValues; // will be always empty while databinding
int SelectedValue; // will be always 0 when passed to the view
...
}
を説明するのもいいじゃないので、私は明らかにここに
class ViewModelB{ // contains data passed to the view
List<KeyValuePair<int, string>> DropDownValues;
...
}
class ReturnModel{ // contains data returned from the view
int SelectedValue;
...
}
でViewModelAを置き換える必要があり、私はちょうど私のモデルに直接結合することができますがのが前提としてみましょうより複雑で、保存する前にデータを処理する必要があります。
ビューモデルにはビューに必要なすべてのプロパティがあります。 – DavidG
はい、そうですが、データバインダーが扱う必要のある不要なフィールドがたくさんあるので、ポストデータ用に別のフィールドを作成するか、そのまま使用する必要がありますか? – Holger
あなたのビューモデルに不要なフィールドがあるのはなぜですか? – DavidG