Asp.Net MVC2 实用入门系列:第三篇:ASP.NET MVC全局观
来源:互联网 发布:淘宝商城网店怎么开 编辑:程序博客网 时间:2024/05/22 07:03
摘要
本文对ASP.NET MVC的全局运行机理进行一个简要的介绍,以使得朋友们更好的理解后续文章。
前言
在上一篇文章中,我们实现了第一个ASP.NET MVC页面。对于没有接触过这个框架的朋友来说,可能对有些地方会迷惑,所以这篇文章我将通过图示配合文字的方法,站在全局的角度介绍一些ASP.NET MVC的运行机制,这样可以帮助朋友们更好的理解后续文章。^_^
全局
首先我们来看一副图片,由于这幅图是我自己画的,不是摘自微软官方,所以如果有什么不到位的地方还望海涵!
首先,用户通过Web浏览器向服务器发送一条url请求,这里请求的url不再是xxx.aspx格式,而是http://HostName/ControllerName/ActionName/Parameters的样子。这个请求被ASP.NET MVC的路由映射系统截获。(路由映射可以在Global.asax中配置,我们一会再说)路由映射系统按照映射规则,解析出控制器名ControllerName,Action名ActionName和各个参数Parameters,然后,找寻Controllers目录下的ControllerNameController.cs这个控制器类,默认情况下,系统总是找寻Controllers目录下的“控制器名+Controller”这么一个类,然后,找寻这个类下与ActionName同名的方法,找到后,将Parameters作为参数传给这个方法,而后Action方法开始执行,完成后返回相应视图,默认情况下,会返回Views目录下与ControllerName同名的目录下的与ActionName同名的aspx文件,并且将ViewData传递到视图。ViewData中一般包含了控制视图显示的控制量以及视图显示需要的数据。
我们按以上思路回顾一下上一篇中主页的请求过程。我们传递的url是http://localhost/Home/Index。默认路由规则下,将ControllerName设为“Home”,ActionName设为“Index”,没有参数。于是系统找寻Controllers目录下的HomeController类的Index方法,成功找到,于是执行之。这个方法调用Mock的Model取出一些数据,放入ViewData相应键值项里。然后返回视图,返回的是Views下Home下的Index.aspx。这个视图取出ViewData中的数据按照一定格式呈现,于是完成了一次典型的ASP.NET MVC调用。
路由
从上面可以看出,ASP.NET MVC中路由是很重要的。它直接决定了如何解析url,因此决定了系统如何工作。那么,下面我们来揭开路由神秘的面纱。
打开我们Demo下的Global.asax.cs文件,可以看到如下代码:
Global.asax.cs:
- Asp.Net MVC2 实用入门系列:第三篇:ASP.NET MVC全局观
- Asp.Net MVC2 实用入门系列:第七篇:闲话ASP.NET MVC
- Asp.Net MVC2 实用入门系列:ASP.NET MVC小论
- Asp.Net MVC2 实用入门系列:第六篇:拦截器
- Asp.Net MVC2 实用入门系列:第五篇:MVC整合Ajax
- Asp.Net MVC2 实用入门系列:第一篇:准备工作
- Asp.Net MVC2 实用入门系列:第二篇:第一个页面
- Asp.Net MVC2 实用入门系列:第四篇:传递表单数据
- Asp.net MVC2.0系列文章-MVC简介篇
- Asp.net MVC2.0系列文章-MVC简介篇
- ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第三篇:ASP.NET MVC全局观
- ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第三篇:ASP.NET MVC全局观
- ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第三篇:ASP.NET MVC全局观
- ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第三篇:ASP.NET MVC全局观
- ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第三篇:ASP.NET MVC全局观
- ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第三篇:ASP.NET MVC全局观
- ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第三篇:ASP.NET MVC全局观
- ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第三篇:ASP.NET MVC全局观
- Asp.Net MVC2 实用入门系列:第二篇:第一个页面
- 下载的java package如何导入eclipse
- CImage 访问像素点 像素数据操作
- treeview 树形结构的经典解说
- ADO.NET基础琐碎总结-----参数化查询
- Asp.Net MVC2 实用入门系列:第三篇:ASP.NET MVC全局观
- linux中运行脚本与设置环境变量
- c++中的补零
- LeetCode: Reverse Linked List II
- 在柱状图中找最大矩形——O(n)时间复杂度java实现
- Asp.Net MVC2 实用入门系列:第四篇:传递表单数据
- realloc 的用法
- 新浪微博登录密码加密函数 wsse加密算法说明
- RowFilter 过滤