因此,在 ASP.NET MVC 中,您经常会看到具有相关 *Context 对象的对象的模式,例如 Request/RequestContext View/ViewContext 和 Controller/ControllerContext。
我确实知道如何在 ASP.NET MVC 管道中工作,但我从来没有真正理解这些 Context 类的总体模式。*Context 类代表什么?有人可以对此有所了解吗?
谢谢,
因此,在 ASP.NET MVC 中,您经常会看到具有相关 *Context 对象的对象的模式,例如 Request/RequestContext View/ViewContext 和 Controller/ControllerContext。
我确实知道如何在 ASP.NET MVC 管道中工作,但我从来没有真正理解这些 Context 类的总体模式。*Context 类代表什么?有人可以对此有所了解吗?
谢谢,
上下文类ViewContext
和ControllerContext
在请求生命周期中维护这个单个模块的状态。此上下文对象是基于 实现的State Pattern
,定义为:
“允许对象在其内部状态发生变化时改变其行为。该对象似乎会改变其类别。”
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 和服务器信息,在其他元素中。