3

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

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

谢谢,

4

2 回答 2

1

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

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

于 2013-09-30T11:07:33.053 回答
0

MVC 模式中的控制器关注应用程序的流程。

控制器类继承ControllerBase类,类又实现IController接口的方法。

控制器接口:

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

控制器基类:

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

ControllerBase 类充当wrapper on top of the IController interface. ControllerBase 类的 Execute() 方法负责创建ControllerContext,它为当前请求提供 MVC 特定的上下文,就像instance of HttpContext为 ASP.NET 提供上下文一样,提供请求和响应、URL 和服务器信息,在其他元素中。

于 2013-09-30T12:18:45.090 回答