.Net MVC中的路由
MVC中的URL也就是路由,不用通过路径访问实际的物理文件而达到向用户展示界面。
URL的路由功能 一方面正向 映射到Controller和Action,根据用户输入的URL触发相应的控制器和对应方法,另一方面则反向映射并构造出URL,根据控制器和行为构造出URL以供程序调用。
系统首次启动将会加载Global.asax文件的Application_Start方法并去执行RegisterRoutes()构造器
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth(); }
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
RegisterRoutes()方法创建了默认的路由表且包含了一个默认路由home/index,route.MapRoute()方法根据设置的属性自动完成创建Route的实例。并命名为"Default",访问格式为"{controller}/{action}/{id}"并提供了一个默认的访问路由路径,"home/inde"。将Home控制器指向url中的Controller,行为Index指向action并提供了一个默认的ID参数。之所以把路由的添加放在了Global.asax文件中,是为了确保在程序启用时,将设置的路由填充到默认的路由表中。
路由表的设置格式
| 有效的路由定义 | 举例 |
| {Controller}/{action}/{id} | /product/show/beverages |
| {table}/Details.aspx | /product/Details.aspx |
| blog/{action}/{entry} |
/blog/show/123 |
| {reporttype}/{year}/{month}/{day} | /sales/2008/1/5 |
当处理来自页面来自/product/show的请求时,MVC框架把product赋值给了参数Controller 把Show赋值给了参数action,并把null赋值给了参数ID。
MVC之所以能完成上述一系列操作,是因为RouteCollection构造器调用了一些的接口去不断的反射和映射传入和输出的Route。详情可查看RouteCollection内置属性。这里不再做阐述。
.Net MVC中的路由的更多相关文章
- .NetCore MVC中的路由(2)在路由中使用约束
p { margin-bottom: 0.25cm; direction: ltr; color: #000000; line-height: 120%; orphans: 2; widows: 2 ...
- .NetCore MVC中的路由(1)路由配置基础
.NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...
- MVC中的路由
authour: chenboyi updatetime: 2015-05-02 16:10:04 friendly link: 目录 1,思维导图 2,MVC处理机制简图(讲解路由解析) 3,默 ...
- Asp.net mvc 中的路由
在 Asp.net mvc 中,来自客户端的请求总是针对某个 Controller 中的 Action 方法,因此,必须采用某种机制从请求的 URl 中解析出对应的 Controller 和 Acti ...
- ASP.NET MVC教程五:ASP.NET MVC中的路由
一.概述 在ASP.NET MVC架构中,控制器在3大核心构件中处于中心地位,通过控制器支配模型和视图,然而从浏览器发出的请求到控制器还需要路由的协助,路由将特定的请求和控制器的动作对应起来. 在AS ...
- MVC中url路由规则
Routing:首先获取视图页面传过来的请求,并接受url路径中的controller和action以及参数数据,根据规则将识别出来的数据传递给某controller中的某个action方法 MapR ...
- ASP.NET MVC中的路由IRouteConstraint方法应用实例
在如下代码的写法中: public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { ro ...
- asp.net mvc中的路由
[Route] 路由 [Route("~/")] 忽略路由前缀 [Route("person/{id:int}")] 路由内联约束 [Route("h ...
- asp.net mvc中配置路由默认值(Area中)
public class RouteConfig { ] { "Best.Site.Areas.BestPalace" }; public static void Register ...
随机推荐
- 匿名函数 lambda表达式(lambda expression)
阅读g2log时,发现有两行代码居然看不懂. 1. auto bg_call = [this, log_directory]() {return pimpl_->backgroundChang ...
- PE文件头
pe文件头查看器下载与原文地址: http://www.pc6.com/softview/SoftView_109840.html PE文件入门: PE文件总的来说是由DOS文件头.DOS加载模块.P ...
- 我眼中的项目leader
个人觉得项目leader应该具备一下基础: 1.技术能力 2.领导能力 3.过滤产品不合理需求能力 4.项目周期把控能力
- 拓扑排序(topsort)
本文将从以下几个方面介绍拓扑排序: 拓扑排序的定义和前置条件 和离散数学中偏序/全序概念的联系 典型实现算法解的唯一性问题 Kahn算法 基于DFS的算法 实际例子 取材自以下材料: http://e ...
- PTGM and APTM
1. 性能测试过程模型(PTGM) PTGM模型包括以下几个步骤: 测试前期的准备 测试工具的引入 测试计划 测试设计与开发 测试执行与管理 测试分析 测试前期准备:主要任务为保证系统稳定和建立合适的 ...
- myeclipse性能优化
1. 取消启动项.这个设置立竿见影.Window->Preferences->General->Startup and Shutdown, Plug-ins activated on ...
- Windows下解压版mysql的安装方法
1 首先下载mysql的解压版的rar安装包 1 将安装包解压到安装路径.C:\Program Files (x86)\MySQL2 将安装路径下的bin追加到环境变量"PATH" ...
- freeCodeCamp:Caesars Cipher
让上帝的归上帝,凯撒的归凯撒. 下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密码. 移位密码也就是密码中的字母会按照指定的数量来做移位. 一个常见的案例就是ROT13密码,字母 ...
- 把页面上的图表导出为pdf文件,分享一种请求下载文件的方法
最近客户提出一个需求,就是把页面上的图表导出为pdf文件. 找了很多资料.终于有了点头绪.最主要是参考了HighCharts的做法.http://www.hcharts.cn/ 实现原理:把页面图表的 ...
- Linux三剑客之grep 与 egrep
grep: Linux上文本处理三剑客 grep:文本过滤(模式:pattern)工具; *(grep, egrep, fgrep) sed:stream editor,文本编辑工具: awk:Lin ...