数据库交互/业务逻辑在MVC中发生在哪里?

时间:2012-02-16 10:50:59

标签: asp.net .net asp.net-mvc-3

我正在尝试了解MVC,我对于将业务逻辑放在何处感到困惑。

我构建的所有Web应用程序都使用N层架构,因此我习惯将业务逻辑和数据库交互放在他们自己的类/相应的“层”中,但是这在MVC中是如何工作的?

从我到目前为止收集的内容来看,似乎这应该全部存储在模型中?但我很困惑,因为它似乎可以很容易地存储在控制器中? Controller负责返回相应的视图..因此,所有逻辑都存储在这里是否有意义?

如果有人能在这种情况下让我了解最佳实践,我将非常感激。

谢谢!

1 个答案:

答案 0 :(得分:5)

Controller应调用您的业务层,然后创建一个简单的POCO ViewModel,将其传递给View

例如。:

  • 您的Controller调用BusinessLayer以从数据库中获取用户。
  • 他找回了一个带有逻辑的用户模型。
  • 然后他创建一个UserViewModel只有属性并将其传递给View

因为关于MVC的一个主要问题是关注分离。您应该创建一个只包含View所需数据的ViewModel,而不是逻辑。

ViewModel只是一个简单的POCO类(Plain Old CLR Object,一个只有属性,没有逻辑的类)

更多信息