2010-02-25 176 views

回答

4

它应该放在Web应用程序的“模型”目录中。 ViewModel根据定义特定于一个或多个视图,因此属于网络应用程序,而不是核心。

可能在使用它们的控制器中定义它们,但是这不能缩放。与在视图代码中定义类相同。尽管每文件单类意味着更多的文件,但它更易于查找代码并且更易于维护。

我会经常为每个控制器创建一个子文件夹,所以我最终得到了诸如Web.Models.Foo.BarViewModel

0

我把实际的模型类放在Models文件夹中。

/Controllers 
/Models 
    /Entities 
    /Mappings 
    /ValueTypes 
    /ViewModels 

就是这样的。我是Fluent NHibernate的忠实粉丝。

3

如果在PresentationModel目录的我的Domain项目中有它们,并且像@Seth Pretry-Johnson那样,我将它们放在单独的Controller目录中。

这是我的一个项目的整体结构:

  • 网站项目
    • 控制器
    • 查看
  • 领域工程
    • 模型
      • 摘要
    • 服务
      • 摘要
    • PresentationModels
      • 用户
  • 数据访问项目

HTHS(而不会引发更多的问题.. ;-) ,
Charles

0

它可以去任何你想去的地方,为什么你需要有人告诉你在哪里上课?

很多人都有错误的想法,除非你把你的类放入一些按功能分组的特定目录中,否则就无法工作。对其他框架来说这可能是正确的,但对于ASP.NET MVC而言并非如此。代码被编译为程序集。

+1

我喜欢学习别人的错误和艰辛。当然,它*可以去任何地方,但它在哪里最有意义,并且造成最小的麻烦。 – 2010-02-26 13:47:45