【发布时间】:2010-07-20 20:40:30
【问题描述】:
- /Controllers/ViewModels?
- /Views/ViewModels?
- 其他?
【问题讨论】:
【问题讨论】:
我喜欢单独的程序集。这是我通常添加 Automapper 代码以从域对象映射它们的地方。像 ProjectName.ViewModel(当然还有 ProjectName.ViewModel.Tests)。
它不会花费太多,如果您想添加另一个 UI(例如 Silverlight/WPF),您将能够重用视图模型。在控制器(显示视图之间的流动)和视图模型(显示特定视图)之间保持良好的关注点分离。
【讨论】:
我喜欢将它们放在站点的根目录 /ViewModels 或模型文件夹旁边(在其中)。
【讨论】:
我将它们与我的观点放在一起。
【讨论】:
这取决于您希望如何构建项目以及该模型的使用范围。
您可以创建一个单独的文件夹并放置所有 View Model 类,或者甚至只是将它们定义在与之关联的控制器类中。
但是,如果您正在为以后的 Web 服务实现寻找分层开发/结构,我建议您将它们放在单独的类库中。它会更干净且可跨项目重用。
【讨论】:
/模型
由于 MVC 中的“M”表示用于视图的模型,并且您正在使用视图模型,因此“模型”文件夹内似乎是它们的主要位置。
每当我开始在一个重要的 MVC 应用程序中工作时,域模型最终都会位于与 MVC 项目不同的项目中。这使它成为一个更诱人的位置,因为默认创建的“模型”文件夹没有视图模型就没有用(但由于某种原因删除它感觉不对)。
【讨论】: