2012-03-07 28 views
2

在asp.net mvc3中,我目前有一個文件ViewModels.cs,它包含我使用的所有viewmodel類。該文件的大小目前只有180行代碼,並且使用#region很容易管理。在mvc3中組織視圖模型的更好方法是什麼?

但是,我擔心這些模型可能會開始加起來。而且,在我看來,如果我將每個視圖模型類分解成它自己的文件,我將最終獲得大量的viewmodel.cs文件。

我試圖製作一個通用視圖模型,但不建議使用泛型類作爲視圖模型。

什麼是更好的方式來組織這些視圖模型,或者更好的方法來查看模型?

+0

「大量」viewModel.cs有什麼問題?如果大量的視圖都很好,那麼也應該使用大量的viewModel.cs。您可能希望根據功能區域來組織這些子文件夾。 – 2012-03-07 21:50:06

+0

@amit_g - 我不認爲viewModel.cs文件中存在大量錯誤,除了我不希望我的解決方案資源管理器看起來像價格波斯(我目前的版本致力於控制器和視圖)。 – 2012-03-07 21:53:23

回答

2

我的標準做法是:

  • Project.Web
    • [內容]
    • [控制器]
      • FooController.cs
    • [的ViewModels]
      • FooViewModel.cs
      • BarViewModel.cs
    • [腳本]
    • [瀏覽]
      • [美孚]
      • [共享]

而且,如果需要的話,你可以在你的配置文件添加到命名空間的引用,所以你最終不會增加ViewModels.每一個參考:

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

如果這是任何幫助。我也看到人們基於控制器打破子目錄中的ViewModels/Models文件夾,但我通常不會達到這種程度(儘管不會受到傷害)。

+0

感謝您的意見,這是有幫助的。我喜歡關於包含默認命名空間的觀點。 – 2012-03-07 21:55:21

+0

@TravisJ:FWIW,看看[nerddinner](http://nerddinner.codeplex.com/)。這是一個體面的大小的項目,展示了很多常見的做法(結構,路線,主題等) – 2012-03-07 21:57:50

+0

感謝您的建議,我看了nerddinner和prodinner,並有他們的代碼副本。然而,在我看來,抽象層次取決於項目規模,我不確定我需要像prodinner那樣抽象地去瘋狂。Nerddinner做了一個相當標準的視圖模型組織。 – 2012-03-07 22:03:27

相關問題