【发布时间】:2011-09-12 08:42:58
【问题描述】:
我想在 MVC 模式中澄清一下 Models 中的内容,特别是 MVC3 中 Models 文件夹的内容,而不是存储库和对象。
现在,在我当前的 MVC3 解决方案中,我有 4 个项目:
- 一个名为“Objects”的项目,其中包含有关我的应用程序中所有核心对象的信息。
- 一个名为“Data”的项目,其中包含有关每个对象的数据上下文和存储库的信息信息(使用 MVC3 脚手架创建)
- Web 项目,其中包含控制器、视图以及 -- 本问题的主题 -- 模型
- 一个单元测试项目
我真正想澄清的是 Objects 项目中的内容与 Web 项目的 Models 文件夹中的内容之间的区别。现在我只使用模型文件夹来保存我称之为“视图模型”的东西,它通常包含核心对象的组合。该文件夹中的文件应该只包含定义模型内容的定义,还是应该包含控制器可能调用的其他代码?
我认为我对控制器和存储库都有很好的了解,但有时我会混淆某些代码是否应该放在其中一个或另一个中。对于绝对不应该进入控制器而应该进入存储库或模型的内容,是否有任何具体的指导或限制?
一如既往的感谢。
【问题讨论】:
-
我个人将我的视图模型放入 ViewModels 文件夹树中,将实体框架生成的模型放入模型文件夹树中。我怀疑其他人会有其他方法。从概念上讲,使用 EF 我已经养成了让我的控制器处理数据库上下文并调用
context.whatever.Add(myThing)和调用context.SaveChanges()的习惯——这可能不是“最好”的方式。
标签: asp.net-mvc-3