【问题标题】:Where to put ViewModel classes in MVC在 MVC 中放置 ViewModel 类的位置
【发布时间】:2014-03-10 10:17:34
【问题描述】:

我的问题很简单。我想知道将我的ViewModels 放在 MVC 应用程序中的哪个位置。

目前我正在处理的项目只有ViewModels,它们存储在Models 文件夹中。在该文件夹中,我们直接创建 ViewModel 类。

但通常我也会有Model 类,以从数据库或其他东西中获取数据。然后从 Controller 与 Model 方法“对话”并将结果存储在 ViewModel 属性中。

但是当我同时使用 Model 类和 ViewModel 类时,我应该把它们放在哪里呢?在为这两个构建文件/文件夹的意义上,什么是好的做法?

【问题讨论】:

  • 我认为拥有ViewModel 文件夹没有问题。没有任何约束表明Model 文件夹应该存在。
  • @AndreiV 我知道,但我现在两者都有。那么将 ViewModel 放在 ViewModels 文件夹中并将 Model 放在 Models 文件夹中是否“正常”?
  • 如果您同时使用两者在视图中显示数据,我会使用 ViewModel 作为子文件夹 Model。如果没有,单独的文件夹对我来说更有意义。

标签: c# asp.net model viewmodel


【解决方案1】:

创建单独的文件夹“ViewModels”并在控制器中引用命名空间并在相应视图中引用相同的名称

【讨论】:

    【解决方案2】:

    您需要以一种您和您的追随者会觉得直观且可维护的方式来构建文件和文件夹。

    我认为文件夹结构没有任何硬性规定,只是有些比其他的差很多。如果它看起来不合逻辑并且有点臭,那么它可能是。

    你的提议似乎很好

    【讨论】:

      【解决方案3】:

      只需在您的项目中创建一个名为 ViewModels 的新文件夹。因此,除了 Views、Controllers 和 Models 文件夹之外,您还将拥有 ViewModels。 正如您已经说过的,您使用您的模型与您的 DAL 对话,并使用您的视图模型与您的视图对话。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-20
        • 1970-01-01
        • 1970-01-01
        • 2017-07-29
        • 2010-12-18
        • 1970-01-01
        • 1970-01-01
        • 2011-06-05
        相关资源
        最近更新 更多