因此,在RequestContext视图/ViewContext和Controller/ControllerContext中,您经常会看到具有相关*上下文对象的对象的模式。
我确实知道如何在ASP.NET MVC管道中工作,但我从未真正理解过这些上下文类的总体模式。*上下文类象征什么?有人能把这件事弄得更清楚点吗?
谢谢,
发布于 2013-09-30 11:07:33
上下文类(如ViewContext和ControllerContext )在请求生命周期中维护此单个模块的状态。这个上下文对象是基于State Pattern实现的,定义为:
“允许对象在其内部状态发生变化时更改其行为。对象将出现更改其类的情况。”
发布于 2013-09-30 12:18:45
MVC模式中的控制器与应用程序的流程有关。
控制器类继承了ControllerBase类,后者又实现了IController接口的方法。
IController接口:
IController接口公开Execute()方法,该方法在向控制器发出请求时执行。它接受RequestContext类的一个对象,该对象使用HttpContext和RouteData属性封装与定义的路由匹配的HTTP request的信息。
ControllerBase类:
抽象的ControllerBase类表示所有MVC控制器的基类。
ControllerBase类充当wrapper on top of the IController interface。ControllerContext,类的Execute()方法负责创建ControllerBase,它为当前请求提供特定于instance of HttpContext的上下文,其方式与instance of HttpContext为ASP.NET提供上下文、提供请求和响应、URL和服务器信息以及其他元素一样。
https://stackoverflow.com/questions/19092383
复制相似问题