ASP.NET MVC的运行机制--url的全局分析
来源:互联网 发布:淘宝机械键盘 编辑:程序博客网 时间:2024/05/19 11:48
首先,用户通过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方法开始执行,完成后返回相应视图,默认情况下,会返回Views目录下与ControllerName同名的目录下的与 ActionName同名的aspx文件,并且将ViewData传递到视图。ViewData中一般包含了控制视图显示的控制量以及视图显示需要的数据。
路由
从上面可以看出,ASP.NET MVC中路由是很重要的。它直接决定了如何解析url,因此决定了系统如何工作。
上面的匹配规则中,三个匹配段都带大括号的,都是参数匹配,下面我们来说说强字符串匹配。例如,我们有一个url需要这样http://localhost/Category/Detail/Name。如果按照上面的匹配规则,Name段的值会被匹配到id中去,可是我们想在CategoryController的Detail方法中使用名叫“name”的参数而不是使用名叫“id”的参数,
可以看到,我们在默认规则前增加了一条规则,其中控制器名和Action名不再是参数,而变成了强字符串(没有{})。这时,当我们请求的url是http://localhost/Cateogry/Detail/para的形式时,就会直接匹配新加的规则,而para的值不会被赋给成id而是赋给名叫name的变量。
需要注意的是,我们新的路由规则一定要放在前面,因为ASP.NET MVC会自上向下匹配第一条找到的可匹配路由规则。
视图
Action方法返回类型是ActionResult,其实这个返回类型不局限于View方法返回ViewResult,它还有很多实现,这里列举几个。
ViewResult:一般呈现某个aspx文件,由View方法返回。
RedirectToResult:使浏览器重定向,由Redirect方法返回。
RedirectToRouteResult:直接交给下一个Action,由RedirectToAction方法返回。
- ASP.NET MVC的运行机制--url的全局分析
- ASP.NET MVC的运行机制--url的全局分析
- ASP.NET的运行机制
- ASP.NET MVC 的URL路由介绍
- ASP.NET的页面运行机制
- Asp.net core mvc里面怎么添加全局的Filter
- Struts2运行机制(MVC)的分析:
- Asp.net mvc 深读mvc运行机制
- ASP.NET分析(一)--运行机制
- asp.net的MVC编程、MV编程以及URL重写
- asp.net的MVC编程、URL重写以及MV编程
- asp.net的MVC编程、URL重写以及MV编程
- 学习ASP.NET MVC(二) 识别URL的Routing组件
- asp.net的MVC编程、MV编程以及URL重写
- asp.net的MVC编程、URL重写以及MV编程 .
- ASP.NET MVC在Request中关于URL的参数
- 在 ASP.NET MVC 中使用带后缀的 URL
- ASP.NET MVC在Request中关于URL的参数
- 矩阵键
- 我与数据库的故事
- Ubuntu16.04 32位桌面版安装nodejs
- shell脚本中变量的赋值
- HMM学习笔记_2(从一个实例中学习HMM前向算法)
- ASP.NET MVC的运行机制--url的全局分析
- 解析<button>跟<input type="button"> 的区别
- 实时操作系统简介(2)
- HMM学习笔记_1(从一个实例中学习DTW算法)
- web是如何启动spring容器的?
- 3D旋转效果
- 把数组排成最小的数
- 正则表达式中/i,/g,/ig,/gi,/m的区别和含义
- MySQL远程代码执行(CVE-2016-6662)漏洞预警