ViewDataでは、文字列をキーとして使用するのではなく、enumを使用しています。私は現在、どこからでもアクセスできる1つの大きなリストを現在持っています。一部の列挙型は、複数のコントローラ/ビューのペアで使用されます。絶えず増加するリストではなく、これらの列挙型を分類する良い方法はありますか?ASP.NET MVC:enumsとViewData []キー
ViewDataで一般的なハードコードされた文字列が好きではありません。列挙は大きなインテリセンスを与える。私はコントローラーで列挙型を分類することを考えました。特定の列挙型の値がコントローラ間で共有され、集中化された場所が必要な場合もあるので、それはあまりうまく機能しません。
私のコントローラが特定の値を取得するために2つ以上のモデルクラスにアクセスする場合、それは機能しません。ビューは1つのクラスとしてのみ入力できます。 ViewDataを使用すると、いくつかのクラスからいくつかの値を取得し、ビューに送信することができます。ビューは値を表示する以外は何もしません。 – 4thSpace
ViewModelはViewをサポートする必要があるため、必要なプロパティを自由に持ち、必要なだけ複雑にすることができます。データがどこから来るのかは無関係です - それはコントローラの責任です。各ViewModelは特定のViewに合わせて調整することができ、必要なデータを正確に与えることができます。ビューに複雑なデータを送信する場合は、これらの複雑なクラスを個別のプロパティとして持つ新しいViewModelを作成します。実際にViewData辞書を使用する必要はありません。 –