浅析ASP.NET MVC路由配置
来源:互联网 发布:js数组遍历方法 编辑:程序博客网 时间:2024/04/29 19:20
URL相关概念
http://example.com/albums/list.aspx 我们可以确定该站点的目录中含有一个albums文件夹,并且在该文件夹下还有一个list.aspx文件
URL和文件系统之间这种一一对应关系并不适用大部分基于MVC的Web框架。一般来说,这些框架采用不同的方法将URL映射到某个类上的方法调用,而不是映射到磁盘上的某个物理文件,这些映射到的类通常称为控制器。URL是统一资源定位符(Uniform Resource Locator)的首字母缩写,但这种情况下,资源是一个抽象的概念,既可以指一个文件,也可以指方法调用的结果或服务器上的一些其他内容。
路由概述
ASP.NET MVC框架中的路由机制主要有两种用途:
匹配传入的请求(该请求不匹配服务器文件系统中的文件),并将这些请求映射到控制器操作。
构造传出的URL,用来相应控制器中的操作。
路由的定义
每个ASP.NET MVC应用程序都至少需要一个路由来定义自己处理请求的方式,但通常情况下,程序总是有一个或多个路由。路由的定义是从URL模式开始的,因为它指定了与路由相匹配的模式。路由可以指定它的URL及其默认值,除此之外,它还可以约束URL的各个部分,提供关于路由如何、何时与传入的请求URL相匹配的严格控制、
在刚建立的一个ASP.NET MVC应用程序中,Global.asax.ax—Application_Start方法中抵用了一个名RegisterRoutes方法,用来为应用程序注册需要的路由
例子:一个非常简单的注册路由方法:
<span style="font-size:18px;">public static voidRegisterRoutes(RouteCollection routes){ routes.MapRoute("simple","{first}"/"{second}"/"{third}")}</span>
MapRoute方法最简单形式是采用路由名称和路由的URL模式。
路由URL由若干个URL段(段是指两个“/”之间的所有内容,不包括两端的斜杠)组成,每个段都包含了一个由一对花括号限定的定位符参数。
ASP.NET MVC框架要求使用一些特定的参数名称——{controller}和{action}
上面的实例如果真的要请求,会出现错误,赢修改为
public static voidRegisterRoutes(RouteCollection routes){ routes.MapRoute("simple","{controller}"/"{action}"/"{id}")}
第一个参数是控制器名,第二个是action方法名,第三个是方法的参数,如果没有参数,只匹配前两个。
路由约束
相应约束:{year=@“\d{4}”,month=@"\d{2}",day=@"\d{2}"},使用正则表达式约束,和Regex类使用的格式相同。
路由机制将忽略那些映射到磁盘物理文件的请求—— IgnoreRoute、StopRoutingHandler
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); public static voidRegisterRoutes(RouteCollection routes){ routes.Add(new Route ( "{resource}.axd/{*pathInfo}", new StopRoutingHandler() )}
路由的调试——Routing Debugger
引用RouteDebug.dll(自己下载)
然后
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); // 默认情况下对 Entity Framework 使用 LocalDB Database.DefaultConnectionFactory = new SqlConnectionFactory(@"Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True"); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);//路由调试 }
结果:
- 浅析ASP.NET MVC路由配置
- ASP.NET MVC路由配置
- ASP.NET MVC路由配置
- Asp.Net MVC 路由配置
- ASP.NET MVC网站路由配置
- 史上最全的ASP.NET MVC路由配置
- 史上最全的ASP.NET MVC路由配置
- ASP.NET MVC路由配置详解
- 史上最全的ASP.NET MVC路由配置
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- ASP.NET MVC 浅析
- 归档,解档,偏好设置,plist存储
- ListView滑动到底部自动加载
- 贝叶斯推断及其互联网应用(二):过滤垃圾邮件
- 阿里云服务器Ubuntu安装jdk7
- C++头文件重定义解决方式
- 浅析ASP.NET MVC路由配置
- centos安装jdk/tomcat/mysql
- 图搜索-dijkstra
- 设置mysql的主从复制
- Android FastJson与不规范JSON引发的血案
- iOS的CALay详解
- NYOJ 477 A+B Problem III
- 方位介词辨异
- git 学习网址