c# - 业务逻辑应该放在 Controller /模型/ View 项目中的什么位置

标签 c# .net asp.net-mvc oop asp.net-mvc-5

我想知道创建复杂 View 和模型的最佳做法是什么。

我一直在读到你应该在模型中处理业务逻辑,并且只使用 Controller 来处理请求和查看结果 jsonstring 等。 它是否正确?

我看到另一篇文章说业务逻辑应该在 Controller 中,而领域逻辑在模型中。

此外,使用构造函数是否是最佳实践,或者这会导致诸如必须为其扩展 Binder 之类的问题。

任何建议,以及对模型 View 和 Controller 的复杂设计实现的引用,我们将不胜感激。

最佳答案

有很多方法可以实现这一点,我喜欢将所有层分离以分离项目并使其成为 MVVM 方式

  1. 总线逻辑,最好放在服务/领域层
  2. Controller 用于获取/解析/发送请求/响应给 View
  3. 模型是您的 View 模型(不是您的业务模型),可以具有与您的模型相同或更多/更少的信息。

Orchard 是 mvc/piranha/nopcommerce 的一个很好的例子。

一些老采用者将所有业务逻辑放在模型中,另一些则将它们放在 Controller 中,我认为这并不干净。

关于c# - 业务逻辑应该放在 Controller /模型/ View 项目中的什么位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21324776/

相关文章:

c# - 非泛型类是否可能包含 .NET(C# 或 VB.NET)中的泛型列表?

.net - 温莎城堡并将实例创建为工厂

ASP.NET MVC 模型验证违反 MVC 规则?

c# - 使用 Azure 从 Web 到移动设备(跨平台)的 Web/浏览器推送通知

c# - 如何使用代码在 C# 中调用 materialDesign 组件并添加到 wpf 设计中?

c# - 如何使用 Nhibernate 的代码映射生成访问 ="field.camelcase-underscore"?

c# - 'ref' 没有像我认为的那样工作

c# - 使用 RichTextBox 而不是 TextBox 有什么好处?

c# - 适用于所有操作的 ActionMethodSelectorAttribute?

c# - 在自定义 AuthorizeAttribute 中访问 QueryString