找回密码
 会员注册
查看: 118|回复: 0

ASP.NET/C# 控制器Controller的深入理解

[复制链接]

1389

主题

5

回帖

496万

积分

管理员

积分
4962992
发表于 2024-2-29 08:19:49 | 显示全部楼层 |阅读模式

ASP.NET/C# 控制器Controller的深入理解

1.理解控制器

1.1控制器的角色

(1)中转作用:控制器通过前面的学习大家应该知道它是一个承上启下的作用,根据用户输入,执行响应行为(动作方法),同时在行为中调用模型的业务逻辑,返回给用户结果(视图)。
(2)中介角色:分离视图和模型,让视图和模型各司其职,控制器赋值二者交互。只负责数据传送,不负责处理。控制器的两种角色可以用下图来表示:

在这里插入图片描述


1.2深入理解控制器类

(1)观察控制器类的元数据。前面我们一直用控制器,在最初我们也简单说过控制器必须继承 Controller 类,那么Controller 类究竟还有哪些密码需要我们进一步研究呢。其实我们通过查看 Controller 类的元数据,就能够发现,如下图所示:

在这里插入图片描述

(2)ControllerBase 类需要理解的内容:
Controller 类位于 System.Web.Mvc 命名空间,继承自 ControllerBase 类。
ControllerBase 类实现了 Icontroller 接口的 Execute 方法,在路由器搜索到相应的控制器后,就会调用Execute 方法进入控制器的处理。
(3)ControllerBase 的属性:
ControllerContext:获取或设置控制器上下文。
ValidateRequest:获取或设置一个值,该值指示伺服为此请求启用请求验证。
ValueProvider:获取或设置控制器的值。
ViewData:获取或设置数据的字典。
ViewBag:获取动态视图数据字典。
TempData:获取或设置可以在不同控制器之间传递数据的字典。
(4)ControllerBase 的任务:
定位:找到对应的动作方法。
获取参数:获取动作方法的参数。
处理错误:在执行动作方法中可能出现的错误。
渲染视图:提供默认的 WebFormViewFactory 类来渲染 ASP.NET 视图。

来源:https://blog.csdn.net/qq_34202873/article/details/87890392
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?会员注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-27 00:16 , Processed in 0.416497 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表