Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 在mvc3中组织视图模型的更好方法?_Asp.net Mvc 3_Viewmodel_Organization - Fatal编程技术网

Asp.net mvc 3 在mvc3中组织视图模型的更好方法?

Asp.net mvc 3 在mvc3中组织视图模型的更好方法?,asp.net-mvc-3,viewmodel,organization,Asp.net Mvc 3,Viewmodel,Organization,在asp.net mvc3中,我目前有一个文件ViewModels.cs,其中保存了我使用的所有viewmodel类。该文件的大小目前只有180行代码,使用#regions非常容易管理 然而,我担心这些模式可能会开始累积起来。此外,在我看来,如果我将每个视图模型类分解为自己的文件,那么最终将得到大量的viewmodel.cs文件 我试图创建一个泛型视图模型,但有人建议不要使用泛型类作为视图模型 组织这些视图模型的更好方法是什么,还是查看模型的更好方法?我的标准方法是: Project.Web

在asp.net mvc3中,我目前有一个文件
ViewModels.cs
,其中保存了我使用的所有viewmodel类。该文件的大小目前只有180行代码,使用
#region
s非常容易管理

然而,我担心这些模式可能会开始累积起来。此外,在我看来,如果我将每个视图模型类分解为自己的文件,那么最终将得到大量的viewmodel.cs文件

我试图创建一个泛型视图模型,但有人建议不要使用泛型类作为视图模型


组织这些视图模型的更好方法是什么,还是查看模型的更好方法?

我的标准方法是:

  • Project.Web
    • [内容]
    • [控制器]
      • FooController.cs
    • [查看模型]
      • FooViewModel.cs
      • BarViewModel.cs
    • [脚本]
    • [意见]
      • [富]
      • [分享]
并且,如果需要,可以在配置文件中添加对命名空间的引用,这样就不会最终向每个引用添加
ViewModels.

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


如果有帮助的话。我还看到人们根据控制器将
ViewModels
/
Models
文件夹分解到子目录中,但我通常不会达到那种程度(尽管不会造成伤害)。

viewModel.cs的“大量”有什么问题?如果大量视图可以,那么大量viewModel.cs也可以。您可能希望根据功能区域将这些文件组织到子文件夹中。@amit_g-我不是说“大量”viewModel.cs文件有问题,只是我不希望我的解决方案资源管理器看起来像Price of Persia(我目前正在处理有关控制器和视图的问题)。感谢您的输入,这很有帮助。我喜欢包含默认名称空间的观点。@TravisJ:FWIW,请看一看。这是一个规模相当大的项目,演示了许多常见做法(结构、路由、主题化等)感谢您的建议,我已经查看了nerddinner和prodinner,并获得了它们的代码副本。但是,在我看来,抽象级别取决于项目大小,我不确定我是否需要像prodinner那样疯狂地进行抽象。nerddinner对视图模型进行了相当标准的组织。