ASP.NET MVC - * Context模式符号化是什么?

时间:2013-09-30 10:52:21

标签: asp.net-mvc

因此,在ASP.NET MVC中,您经常会看到具有相关* Context对象的对象的模式,如Request / RequestContext View / ViewContext和Controller / ControllerContext。

我确实知道如何在ASP.NET MVC管道中工作,但我从未真正理解这些Context类的总体模式。 * Context类符号是什么?有人可以对此有所了解吗?

谢谢,

2 个答案:

答案 0 :(得分:1)

上下文ViewContextControllerContext在请求生命周期中维护此单个模块的状态。此上下文对象基于State Pattern实现,定义为:

  

“允许对象在其内部状态发生变化时改变其行为。该对象似乎会改变其类。”

答案 1 :(得分:0)

MVC模式中的

控制器与应用程序的流程有关。

Controller类继承ControllerBase类,后者又实现IController接口的方法。

IController界面:

IController接口公开Execute()方法,该方法在为控制器发出请求时执行。它接受RequestContext类的对象,该对象使用HttpContext和RouteData属性封装有关与定义的路由匹配的HTTP request的信息

ControllerBase类:

抽象ControllerBase类表示所有MVC控制器的基类。

ControllerBase类充当wrapper on top of the IController interface。 ControllerBase类的Execute()方法负责创建 ControllerContext ,它为当前请求提供MVC特定上下文,其方式与instance of HttpContext为ASP提供上下文的方式相同。 NET,提供请求和响应,URL和服务器信息以及其他元素。