ASP.NET MVCモデル対選択リスト用のViewData
-
23-09-2019 - |
質問
かなりの数のドロップダウンリストとマルチセレクトリストを備えたASP.NET MVCアプリケーションがあります。基本的に、オプションの多くのリスト。
私の質問は次のとおりです。これらのリストをモデルの一部として、またはviewdataとして渡す方が良いでしょうか?
私は現在、モデルでそれらを本当に必要とせず、モデルを渡すために潜在的にかさばるように見えるので、私は現在それらをViewDataとして渡しています(選択したアイテムまたはアイテムを取得します。これは本当に必要なのです)。マイナス面として、Viewdataはビューでキャストする必要がありますが、これは強くタイプされたモデルほど良くありません。
ここにベストプラクティスはありますか?これらのいずれかの長所と短所の提案でさえ高く評価されます。
解決
ViewModelを使用してそのデータを渡すことをお勧めします。 「魔法の弦」を備えたViewDataを使用することはエラーであり、「魔法の弦」を覚えようとするのではなく、Intellisenseを使用することを好みます。また、コントローラーにそのselectlistsを作成する必要はありません。 ienumerableを使用して使用してください toselectlist ビュー内のMVCCONTRIBからの拡張方法。
他のヒント
ビューに通過するアイテムが1つしかない場合、ViewDataを使用する傾向があります。したがって、複数のオブジェクトを送信し、複数のドロップダウンを入力する必要がある場合は、ビューモデルを作成します。また、Webアプリプロジェクトでそのビューモデルを作成するため、ビューモデルにSelectListオブジェクトがある場合、ドメインモデルのMVC DLLへの参照は必要ありません。