asp.net - 业务逻辑在MVC模式中属于什么位置

标签 asp.net asp.net-mvc design-patterns edmx

假设我的数据库中有一个人员表。每当一个新人被添加到数据库中时,就会生成一个 pdf 并通过电子邮件发送给某人。

此逻辑是否进入模型,因此应用程序所做的只是传入数据以插入新人员,并且模型还处理 pdf 和电子邮件?

或者这个逻辑是否进入 Controller ?

如果这应该进入模型,并且我正在使用 Entity Framework ,我该怎么做?创建一个包装 .edmx 模型的 .cs 类?

最佳答案

据我了解,您不会想用这种逻辑搞乱 Controller 。属于 Controller 的内容将定义将传递到 View 的模型或打开或关闭验证。 Controller 还应该控制其他几个与 View 相关的事物,但这只是其中几个。我想要表达的一般观点是, Controller 负责通过调用服务或模拟存储库来填充模型,然后将这些模型传递给 View 。

为了完成您所解释的操作,我将添加一个位于数据访问层之上的服务层(dal - 您的 EDMX 和存储库所在的位置)。在该服务层内,我将调用方法或服务来生成 pdf 并发送电子邮件。

存储库和数据访问层应该只关心查询数据库和检索记录。这与您使用什么 ORM 或数据访问工具无关。检索到的记录将传递到服务层,您可以在其中对数据执行操作(例如验证或发送 pdf),然后返回表示层以在 View 中显示所需的任何格式的记录。 Controller 不会对检索到的数据执行任何逻辑操作,而是将其传递给 View 。

如果您想了解有关我所描述的架构布局的更多详细信息,那么我很乐意为您提供更多了解。

关于asp.net - 业务逻辑在MVC模式中属于什么位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11232707/

相关文章:

c# - 多个路由分配给一个方法,如何确定调用了哪个路由?

小数点可接受的 xsd 模式?

c++ - 如何知道对象是否被移动

java - Java 中的设计模式问题

asp.net - 仅在本地主机上使用 Fiddler

c# - 查询找出两个数据表中重复的行?

c# - asp.net 4.6 MVC 5 的 future

Jquery-UI Thickbox 无法正常工作

c# - 在回调中重用回调时如何防止 StackOverflowException?

jquery - 创建新的 MVC 项目时出错 - EF 和 JQuery