相信对于很多习惯了使用简单网站创建程序的人来说,MVC真的很神奇,他的程序入口在哪里?如何执行?执行的顺序是怎么样的?相信较真儿的兄弟们都会被这个问题折腾的睡不着觉。
那么,让我们看看官方的解释
1.接收对应用程序的第一个请求
在 Global.asax 文件中,Route 对象将添加到 RouteTable 对象中。
2.执行路由
UrlRoutingModule 模块使用 RouteTable 集合中第一个匹配的 Route 对象来创建 RouteData 对象,然后使用所创建的对象创建 RequestContext 对象。
3.创建 MVC 请求处理程序
MvcRouteHandler 对象将创建 MvcHandler 类的实例,并将 RequestContext 实例传递给处理程序。
4.创建控制器
MvcHandler 对象使用 RequestContext 实例标识用于创建控制器实例的 IControllerFactory 对象(通常是 DefaultControllerFactory 类的实例)。
5.执行控制器
MvcHandler 实例调用控制器的 Execute 方法。
6.调用操作
对于从 ControllerBase 类继承的控制器,与该控制器关联的 ControllerActionInvoker 对象将决定要调用的 controller 类的操作方法,然后调用该方法。
7.执行结果
操作方法将接收用户输入,准备合适的响应数据,然后通过返回结果类型来执行结果。 可执行的内置结果类型包括:ViewResult(呈现视图并且是最常用的结果类型)、RedirectToRouteResult、RedirectResult、ContentResult、JsonResult、FileResult 和 EmptyResult。