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

ali*_*c83 4 .net asp.net asp.net-mvc-3

我正在尝试了解MVC,我对于在哪里放置业务逻辑感到困惑.

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

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

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

谢谢!

dkn*_*ack 5

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

例如.:

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

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

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

更多信息