MVC模型中Controller的作用是啥?

Posted

技术标签:

【中文标题】MVC模型中Controller的作用是啥?【英文标题】:What is the role of Controller in MVC model?MVC模型中Controller的作用是什么? 【发布时间】:2018-06-01 18:26:57 【问题描述】:

我在这里浏览了一些答案和一些关于 MVC 的文章,但我仍然对控制器在 MVC 应用程序中的角色感到困惑。

我在一本书中读到,模型是自包含的,并且功能独立于视图和控制器。并且模型包含业务逻辑和数据访问代码。 Source

也在最佳答案中 这里 What goes into the "Controller" in "MVC"?

但是这里的其他答案说它是代表业务逻辑的控制器

Where can I find a dead-simple explanation of MVC?

那么哪个是正确的答案?

【问题讨论】:

What goes into the "Controller" in "MVC"?的可能重复 @Stefan 我已经解决了这个问题。仍然混乱! 投票关闭只是因为那里已经有大量信息(包括这里);像 MVC 这样的东西是模式,并不是每个人都正确地遵循它们,所以你可能会在不同的地方遇到不同的答案(我知道有帮助!)。概括地说: > 模型 = 您的数据类型(例如客户、订单等) > 视图 = 显示信息的实际网页 > 控制器 = 从数据源收集模型,执行一些逻辑,然后将其传递给视图(以及其他方式也一样)。 但是由于那笔财富,我真的很困惑,想一劳永逸地把事情弄清楚。就像下面的答案也不正确。由于不赞成投票,我可能无法在这里提出更多问题。怎么办>?我认为 SO 应该澄清我的理解。 @Clint 所以你的意思是业务逻辑发生在控制器中? 【参考方案1】:

***非常简单地说:控制器接受输入并将其转换为模型或视图的命令。

https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

【讨论】:

【参考方案2】:

这个答案是正确的

模型:该组件代表应用的数据和业务逻辑。MVC框架中的模型与应用的呈现无关。模型组件专注于跟踪应用程序的状态。它还定义了数据的业务规则,意味着如何更改和操作数据。

视图:视图为模型提供用户界面 (UI)。视图的主要工作(功能)以用户可理解的格式表示信息。它使用 UI 组件,例如 html、CSS、Jquery 等。

控制器:控制器充当视图和模型之间的中介。它负责控制模型和视图之间的数据传输。它将用户操作映射到模型更新中。控制器层有助于选择最合适的视图并将其交付给用户。

实际上,控制器是视图和模型之间的中介。他们没有定义业务逻辑。模型负责业务逻辑。

【讨论】:

模型不应该负责业务逻辑,他们负责你的对象结构。如果是你刚刚打破了 Solid 的第一条规则。您的业​​务逻辑应该在单独的层中定义。因此,如果您希望更改为 WPF,例如,您仍然可以参考您的业务层。 模型应该是 POCO,而不是业务逻辑的持有者。这是完全错误的。 @CamiloTerevinto 那么最后的正确答案是什么? @Mr.J 不是真的要在这里回答,但你读过this answer吗?不管那里有什么 MVVM 组合,它都是一个不错的选择。 也通过这个.. codeproject.com/Articles/25057/…【参考方案3】:

Controller 充当 View 和 Model 类之间的中介。它仅用于删除模型和视图类之间的依赖关系。 请参考这个链接.. https://www.tutorialspoint.com/mvc_framework/mvc_framework_controllers.html

【讨论】:

【参考方案4】:

ASP.NET MVC 框架将 URL 映射到称为控制器的类。 控制器处理传入请求,处理用户输入和交互,并执行适当的应用程序逻辑。控制器类通常调用单独的视图组件来为请求生成 HTML 标记。

Controller 类负责以下处理阶段:

找到适当的操作方法来调用并验证它 可以调用。 获取值以用作操作方法的参数。 处理在执行操作方法期间可能发生的所有错误。 提供用于呈现 ASP.NET 页面类型(视图)的默认 WebFormViewEngine 类。

【讨论】:

我想你误会了,我提到控制器定位 Action 方法,将 args 传递给 Action 方法。参考MSDN link

以上是关于MVC模型中Controller的作用是啥?的主要内容,如果未能解决你的问题,请参考以下文章

java的MVC是啥?有啥作用?

Java Web中的mapper,service,controller,model究竟分别是啥作用?

mvc是啥,有啥用

三层架构是啥?

菜鸟学习MVC实录:弄清项目各类库的作用和用法

对MVC模式的理解是啥?