ASP.NET RouteModule相关的一些东西
Asp.NET中的路由配置,首先要提到的几个相关类型,Route ,RouteBase,RouteData,RouteTable,RouteCollection 这几个。下面我一次回忆一下,有需要的朋友也可以作为参考,如果有问题也可以在留言区指出来,高手路过也请提出一些宝贵的意见。
①Route 这个类继承了RouteBase这个抽象类,Route类型中几个重要的属性:RouteHandler,它是最重要的一个属性,作用是真正执行路由的功能。这里有个小技巧 当你看到DemoHandler 类似这样的以Handler结尾的时候 该属性是最后用来执行的。
1)Constaints 约束,路由模板约束 ,它的类型是RouteValueDictionary字典类型key表示的是路由模板中的变量名称,value表示匹配的正则表达式。
3)Defaults
② RouteBase这个抽象类中主要有两个重要的方法 GetRouteData(获取路由数据)和GetVirtualPath(获取完整的虚拟路径)
③RouteData
1)Values,表示最后得到的参数
2)RouteHandler
④RouteTable这个类可以用来在asp.net应用程序启动的时候进行Url重写,重写的方法有2个,MapPageRoute和Ignore,第一个是物理文件和路由Url之间的映射,另外一个是忽略物理文件和路由Url之间的映射。即屏蔽。
protected void Application_Start()
{
///路由重写
var defaults = new RouteValueDictionary { { "name", "" }, { "id", "" } };
RouteTable.Routes.MapPageRoute("", "api/{name}/{id}", "~/default.aspx", true, defaults);
GlobalConfiguration.Configure(WebApiConfig.Register);
}
⑤RouteCollection是Route的集合