在.Net 4.0之前我們為了做出搜索引擎友好的,對用戶也友好的url都是需要自己實現Url重寫,現在不需要了,.Net 4.0為我們做這一切。UrlRouting之所以稱之為Routing是因為它不但實現了Url重寫還可以通過參數得到重寫後的Url在頁面上使用。
1. Url Routing 的通常用法
UrlRouting在Asp.Net Mvc項目中被廣泛使用,在Mvc中很好用,所以移植到了webform中,我們先看下在webform中的使用方式
假定一個使用場景:我們需要做博客每日文章的頁面,我們希望的url地址是:
/archive/2010/05/10/default.aspx
這個地址將被映射到~/posts.aspx文件上
要使用UrlRouting,需要將UrlRouting的規則注冊到RouteTable中,如下Global文件中注冊Routing規則的代碼
01
public
static
void
RegisterRoutes(RouteCollection routes)
02
{
03
routes.Ignore(
"{resource}.axd/{*pathInfo}"
);
04
05
routes.MapPageRoute(
"blogs"
,
//給這個UrlRouting規則起一個名字
06
"archive/{year}/{month}/{date}/default.aspx"
,
//希望的友好Url地址格式
07
"~/blogs.aspx"
,
//映射到的aspx頁面路徑
08
false
,
//是否需要檢查用戶權限
09
new
RouteValueDictionary{ {
"year"
, DateTime.Now.Year },
10
{
"month"
, DateTime.Now.Month },
11
{
"date"
, DateTime.Now.Date}
12
},
//參數的默認值
13
new
RouteValueDictionary {
14
{
"year"
,
@"(19|20)d{2}"
},
15
{
"month"
,
@"d{1,2}"
},
16
{
"date"
,
@"d{1,2}"
}
17
}
//參數的規則,我們在這裡限制url中的年月日是我們想要的數據格式
18
);
19
20
}
21
22