MVC - 模型,对象和存储库之间的差异

时间:2011-09-12 08:42:59

标签: asp.net-mvc-3

我想在MVC模式中澄清一下模型中的内容,特别是MVC3中Models文件夹的内容,而不是存储库和对象。

目前,在我目前的MVC3解决方案中,我有4个项目:

  1. 一个名为“Objects”的项目,它保存有关我的应用程序中所有核心对象的信息。
  2. 一个名为“Data”的项目,它保存有关每个对象的数据上下文和存储库的信息信息(使用MVC3脚手架创建)
  3. Web项目,其中包含控制器,视图和 - 此问题的主题 - 模型
  4. 单元测试项目
  5. 我真正想要澄清的是,对象项目应该与Web项目的Models文件夹中的内容之间存在差异。现在我只使用Models文件夹来保存我称之为“View Models”的东西,它通常包含核心对象的组合。此文件夹中的文件是否只包含定义模型内容的定义,还是应包含控制器可能调用的其他代码?

    我认为我对控制器和存储库都有很好的理解,但有时我会对某些代码是否应该进入其中一个感到困惑。是否有任何具体的指导方针或限制,关于什么绝对不应该在控制器中,但应该放在存储库或模型中?

    一如既往地谢谢。

1 个答案:

答案 0 :(得分:1)

除了将对象和数据组合在一个由所有项目引用的Core库中之外,我们做了一些非常相似的事情。 MVC项目中的models文件夹严格用于View Models。

如果你的控制器需要额外的类,它实际上取决于它需要什么。我通常会包含一个Helpers文件夹,其中包含HtmlHelpers,Attributes和Filters的子文件夹。如果它是一个在MVC项目之外存在的依赖(在所有项目中使用的公共类),我会将它添加到Core。