3. URL路由
URL路由
原文 : http://quickstarts.asp.net/3-5-extensions/mvc/URLRouting.aspx
1. 介紹
2. 定義URL路由
URL路由包括一個URL模式定義,在模式定義中,"{}"定義占位符,"/"和"."分割各個字符串.
當URL請求字符串被URL模式解析時,占位符和具體的值組成"鍵值對".
一般,URL路由在Global.asax文件的Application_Start方法中被定義.
示例代碼:
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterRoutes(RouteCollection routes)
{
}
3. 為路由參數設置默認值.
若不設置默認值,則URL路由要求所有占位符都必須賦值才能匹配.
示例代碼:
public static void RegisterRoutes(RouteCollection routes)
{
routes.Add(new Route("Category/{action}/{categoryName}", new CategoryRouteHandler())
{
}
);
}
4. 捕獲未知數量的參數.
使用"*"通配符,如:"query/{queryname}/{*queryvalues}",
使用它可以匹配"/query/select/bikes/onsale", 則queryvalues = "bikes/onsale".
5. 為URL模式添加約束.
示例代碼:
public static void RegisterRoutes(RouteCollection routes)
{
routes.Add(new Route("{locale}/{year}" , new ReportRouteHandler())
{
}
);
}
6. 使用URL路由信息創建鏈接.
示例代碼:
HyperLink1.NavigateUrl = RouteTable.Routes.GetVirtualPath
(context,
new RouteValueDictionary {
{ "categoryName", "beverages" },
{"action", "summarize" }}
).VirtualPath;
將獲得一個包含"Category/summarize/beverages"的超鏈接.
原文 : http://quickstarts.asp.net/3-5-extensions/mvc/URLRouting.aspx
1. 介紹
2. 定義URL路由
URL路由包括一個URL模式定義,在模式定義中,"{}"定義占位符,"/"和"."分割各個字符串.
當URL請求字符串被URL模式解析時,占位符和具體的值組成"鍵值對".
一般,URL路由在Global.asax文件的Application_Start方法中被定義.
示例代碼:
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterRoutes(RouteCollection routes)
{
}
3. 為路由參數設置默認值.
若不設置默認值,則URL路由要求所有占位符都必須賦值才能匹配.
示例代碼:
public static void RegisterRoutes(RouteCollection routes)
{
routes.Add(new Route("Category/{action}/{categoryName}", new CategoryRouteHandler())
{
}
);
}
4. 捕獲未知數量的參數.
使用"*"通配符,如:"query/{queryname}/{*queryvalues}",
使用它可以匹配"/query/select/bikes/onsale", 則queryvalues = "bikes/onsale".
5. 為URL模式添加約束.
示例代碼:
public static void RegisterRoutes(RouteCollection routes)
{
routes.Add(new Route("{locale}/{year}" , new ReportRouteHandler())
{
}
);
}
6. 使用URL路由信息創建鏈接.
示例代碼:
HyperLink1.NavigateUrl = RouteTable.Routes.GetVirtualPath
(context,
new RouteValueDictionary {
{ "categoryName", "beverages" },
{"action", "summarize" }}
).VirtualPath;
將獲得一個包含"Category/summarize/beverages"的超鏈接.
總結
- 上一篇: 腾讯:互联网正进入社区化阶段
- 下一篇: 微软五月一行