苏飞论坛

标题: 分布式框架v1.3新增routes路由重写url机制 [打印本页]

作者: songwenqi    时间: 2016-2-19 17:24
标题: 分布式框架v1.3新增routes路由重写url机制
【分布式系统框架教程】-分布式框架v1.3新增routes路由重写url机制


导读部分



1.【分布式系统框架】教程目录帖http://www.sufeinet.com/thread-10624-1-1.html

教程部分


  
其实代码开发起来很简单,主要是在global文件的Application_Start方法里用RegisterRoute()这个方法注册路由,然后在这个方法里面我们设置好自己的友好的重写后url的机制,下面仅贴出RegisterRoute()方法里面的部分代码。
[C#] 纯文本查看 复制代码
 //注册sql版编辑用户
            routes.MapPageRoute("sqlEditUserRoute", "SqlEditUser/{id}", "~/Sql/User/AddUser.aspx", true, null, new System.Web.Routing.RouteValueDictionary { { "id", "[0-9a-zA-Z]+" } });


相关参数说明:
"sqlEditUserRoute":你自己起的路由名称。
"SqlEditUser/{id}":你自己定义的友好url,其中{id}表示参数。
"~/Sql/User/AddUser.aspx":实际访问的url地址文件。
"new System.Web.Routing.RouteValueDictionary { { "id", "[0-9a-zA-Z]+" } }":这个方法是来给你定义的{id}参数进行一些规则的约定,这里表示参数id只能是数字或者字母。
需要注意的是 routes.MapPageRoute方法有多个重载方法,我们可以根据需要来进行调用。
这里设置完成之后,当你访问”/SqlEditUser/123abc“这样的url就会指向”/Sql/User/AddUser.aspx?id=123abc“,在/Sql/User/AddUser.aspx这个页面获取这个参数时需要注意,看下面获取参数的两种方法:
[C#] 纯文本查看 复制代码
 string userId = this.RouteData.Values["id"].ToString();//这样是正确的。设置路由后需要这样获取参数。
string userId =Request["id"].ToString();//设置路由后这样是获取不到参数的。

好了,url路由设置的使用方法大概就是这些,其他详情可以看源码。



作者: ASOLN    时间: 2016-5-10 11:09
太棒了,非常感谢!
作者: luocaihuang    时间: 2016-12-5 21:13
强烈支持楼主ing……
作者: ningning0128    时间: 2017-4-22 19:09
请教下:
1、自己定义的友好url可以是xxxx.html或者其他的扩展名么。
2、实际访问的url地址文件名扩展名必须是.aspx的么?
作者: 乖乖    时间: 2018-12-8 23:42
看过帖子回复一下是个好习惯




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4