2012-03-07 9 views
2

asp.net mvc3では、私は現在、私が使用するすべてのviewmodelクラスを保持する単一のファイルViewModels.csを持っています。ファイルのサイズは現時点では180行にすぎず、#regionで管理するのは簡単です。mvc3でビューモデルを整理するより良い方法は?

しかし、私はこれらのモデルが追加される可能性があることを恐れています。さらに、各ビューモデルクラスを独自のファイルに分割すると、大量のviewmodel.csファイルが作成されることになります。

一般的なビューモデルを作成しようとしましたが、ジェネリッククラスをビューモデルとして使用することを勧めました。

これらのビューモデルを整理するためのより良い方法、または一般的にモデルを表示するためのより良いアプローチは何ですか?

+0

viewModel.csの「大量」に何が問題になっていますか?大量のビューがうまくいけば、大量のviewModel.csも必要です。機能領域に基づいてサブフォルダ内にそれらを整理することができます。 –

+0

@amit_g - 私はソリューションエクスプローラをペルシャの価格のように見せたくないという事実を除いて、viewModel.csファイルの「大量」に問題があると主張しているわけではありません。コントローラーやビューに関して作業しています)。 –

答えて

2

私の標準的なアプローチがされています:

  • Project.Web
    • [内容]
    • [コントローラ]
      • FooController.cs
    • [のviewmodelsを]
      • FooViewModel.cs
      • BarViewModel.cs
    • [スクリプト]
    • [ビュー]
      • [フー]
      • [共有]

そして、必要であれば、あなたはすべての参照にViewModels.を追加しなくて済むよう、あなたの設定ファイルに名前空間への参照を追加することができます。

<pages> 
    <namespaces> 
    <add namespace="MyProject.Web.ViewModels" /> 
    </namespaces> 
</pages> 

それは、任意の助けになら。私はまた、コントローラに基づいてサブディレクトリにViewModels/Modelsフォルダを壊すのを見たことがありますが、私は通常その範囲に行きません(傷つけません)。

+0

入力していただきありがとうございます。私はデフォルトの名前空間を含めるのが好きです。 –

+0

@TravisJ:FWIW、[nerddinner](http://nerddinner.codeplex.com/)を見てください。 –

+0

提案してくれてありがとう、私はnerddinnerとprodinnerを見て、彼らのコードのコピーを持っています。これは、一般的なプラクティス(構造、ルート、テーマなど)の多くを示す適切な規模のプロジェクトです。しかし、私の考えでは、抽象度はプロジェクトのサイズに依存しており、抽象的にprodinnerと同じくらい夢中になる必要はないと私は確信しています。Nerddinnerは、ビューモデルのかなり標準的な構成をしています。 –

関連する問題