【问题标题】:Where should ViewModels be located?ViewModel 应该放在哪里?
【发布时间】:2010-07-20 20:40:30
【问题描述】:
  • /Controllers/ViewModels?
  • /Views/ViewModels?
  • 其他?

【问题讨论】:

    标签: asp.net-mvc-2 viewmodel


    【解决方案1】:

    我喜欢单独的程序集。这是我通常添加 Automapper 代码以从域对象映射它们的地方。像 ProjectName.ViewModel(当然还有 ProjectName.ViewModel.Tests)。

    它不会花费太多,如果您想添加另一个 UI(例如 Silverlight/WPF),您将能够重用视图模型。在控制器(显示视图之间的流动)和视图模型(显示特定视图)之间保持良好的关注点分离。

    【讨论】:

      【解决方案2】:

      我喜欢将它们放在站点的根目录 /ViewModels 或模型文件夹旁边(在其中)。

      【讨论】:

        【解决方案3】:

        我将它们与我的观点放在一起。

        【讨论】:

          【解决方案4】:

          这取决于您希望如何构建项目以及该模型的使用范围。

          您可以创建一个单独的文件夹并放置所有 View Model 类,或者甚至只是将它们定义在与之关联的控制器类中。

          但是,如果您正在为以后的 Web 服务实现寻找分层开发/结构,我建议您将它们放在单独的类库中。它会更干净且可跨项目重用。

          【讨论】:

            【解决方案5】:

            /模型

            由于 MVC 中的“M”表示用于视图的模型,并且您正在使用视图模型,因此“模型”文件夹内似乎是它们的主要位置。

            每当我开始在一个重要的 MVC 应用程序中工作时,域模型最终都会位于与 MVC 项目不同的项目中。这使它成为一个更诱人的位置,因为默认创建的“模型”文件夹没有视图模型就没有用(但由于某种原因删除它感觉不对)。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-02-17
              • 2018-11-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-11-06
              • 2012-07-18
              • 2020-09-30
              相关资源
              最近更新 更多