2012-03-07 26 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

相关问题