ASP.NETC#控制器Controller的深⼊理解
控制器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 的任务:
定位:到对应的动作⽅法。
mvc的controller获取参数:获取动作⽅法的参数。
处理错误:在执⾏动作⽅法中可能出现的错误。
渲染视图:提供默认的 WebFormViewFactory 类来渲染视图。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论