您的位置:首页 > 编程语言 > ASP

ASP.NET MVC 框架之执行流程(二)

2010-06-20 16:04 337 查看
一,基本概念:
在传统情况下,http: //localhost/Default.aspx表示请求网站根目录下的Default.aspx文件。
在ASP.NET MVC中,Routing处理一切请求,然后从请求的URL中确定controller名称、action名称和各种参数。
Controller执行对应的Action,Action处理表现逻辑或者跳转等。默认是不执行任何xxx.aspx文件请求的。
这也是使用了ASP.NET MVC后与传统ASP.NET应用最大的差别。详细流程如下,
二,框架执行顺序:




如上图所示,
首先,用户通过Web浏览器向服务器发送一条url请求,这里请求的url不再是xxx.aspx格式,而是http:// HostName/ControllerName/ActionName/Parameters的样子。
这个请求被ASP.NET MVC的路由映射系统截获。路由映射系统按照映射规则,解析出控制器名ControllerName,Action名ActionName和各个参数Parameters,然后,找寻Controllers目录下的ControllerNameController.cs这个控制器类,默认情况下,系统总是找寻Controllers目录下的“控制器名+Controller”这么一个类。
然后,找寻这个类下与ActionName同名的方法,找到后,将Parameters作为参数传给这个方法,而后Action方法开始执行,执行后返回的是ActionResult类型(可以是view、json、redirect等)。
ActionResult其中的一个类型是视图,默认情况下,会返回Views目录下与ControllerName同名的目录下的与ActionName同名的aspx文件,并且将ViewData传递到视图。ViewData中一般包含了控制视图显示的控制量以及视图显示需要的数据,ViewData是控制器与View传递数据的方法之一。
我们按以上思路回顾一下上一篇中主页的请求过程。我们传递的url是http: //localhost/Home/Index。默认路由规则下,将ControllerName设为“Home”,ActionName设为“Index”,没有参数。
于是系统找寻Controllers目录下的HomeController类的Index方法,成功找到,于是执行之。
这个方法调用Model取出一些数据,放入ViewData相应键值项里。然后返回视图,返回的是Views下Home下的Index.aspx。
这个视图取出ViewData中的数据按照一定格式呈现,于是完成了一次典型的ASP.NET MVC调用。

下一篇中我们将详细介绍URL routing。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: